当前位置:  技术问答>java相关

何为虚拟机的关闭??

    来源: 互联网  发布时间:2015-06-08

    本文导语:  我有这一段程序: File file = new File("e:\exam\"); File tfile = new File(); File newfile = tfile.createTempFile("111",".xml",file); newfile.deleteOnExit(); 其中,《JAVA 2 类库》里说newfile.deleteOnExit();在虚拟机关闭时自动删除临时文件,请问...

我有这一段程序:
File file = new File("e:\exam\");
File tfile = new File();
File newfile = tfile.createTempFile("111",".xml",file);
newfile.deleteOnExit();

其中,《JAVA 2 类库》里说newfile.deleteOnExit();在虚拟机关闭时自动删除临时文件,请问什么时候是虚拟机关闭?我用JDK写的,关闭DOS后,那个临时文件还在,关闭机器后重启,还有,怎么回事?它在什么情况下才会自动删除?

|
java类库的解释是这样的  
 Deletion will be attempted only for normal termination of the virtual machine, as defined by the Java Language Specification (12.9). 
只有jvm正常退出才会消除临时文件。
比如
import java.io.*;
class foo{
public static void main(String []args) throws IOException{
File file = new File("e:\exam\");
File newfile = File.createTempFile("111",".xml",file);
newfile.deleteOnExit();
System.out.println(newfile);
while(true);
}
}
这样只有按ctrl+c和直接关闭DOS窗口叫非正常退出,这是不会删除文件。
如果把while(true);语句去处,就可以删除文件了。

|
上面的while(true); 目的是让程序永远不正常退出。按ctrl c打断属于非正常退出,系统当然不会及时删除临时文件。和拔电源线是一样的。
只有程序执行到末尾退出(例如把上面的while去掉),或者调用System.exit(0),才算正常退出。JVM收到这个指令,才有时间删除临时文件和真正退出。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • VPN虚拟局域网和本地局域网共存(连上vpn后正常打开网页)
  • 虚拟机的系统为Linux ,我在虚拟机下装了tomcat,我在虚拟机下可以访问tomcat的应用,但是为什么在本机访问不了虚拟机下的应用
  • VLAN(虚拟局域网)技术工作原理介绍
  • 我有两个电脑都装了Virtual PC虚拟机,请问我在一个虚拟机上装了LINUX后,另一个虚拟机可以用吗?
  • docker和VM虚拟机的区别以及如何用docker搭建基础设施
  • [虚拟机下安装linux]初次使用虚拟机,请帮忙推荐虚拟机和可以下载的镜像
  • ​docker之轻量虚拟化技术——docker实战分享
  • 在虚拟机上运行的程序和非虚拟机的区别
  • 虚拟机能虚拟硬件平台不 ?
  • 一台机器能不能装两台虚拟机或是同一台虚拟机能装两个linux系统么??
  • ARM ping不通虚拟机,虚拟机可以ping通ARM
  • linux(虚拟机)如何使用windows上的虚拟光驱?谢谢了
  • 虚拟机安装xampp后虚拟接口一访问网站,主机不可以
  • vmware虚拟机linux不能ping通主机,主机能ping通虚拟机
  • VMware虚拟机下Linux怎么访问虚拟机的光驱
  • Fedora9中虚拟机工具不能创建虚拟机
  • 虚拟机-虚拟光驱的搭配,有安装LINUX成功的办法么?
  • 在虚拟机上安装freebsd7.0后,将虚拟硬盘移到其它虚拟机上,出现mounroot> 怎样解决?
  • aix可以用虚拟机虚拟吗?
  • redhat 虚拟机的ip设置好了,如何让虚拟机跟xp本机通讯呢?
  • 虚拟linux,我在windows下面怎么虚拟linux。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3