日期:2014-05-20  浏览次数:20783 次

java 1.6 on vista bug?
这几天我在将我的java程序迁移到vista上时发现了两个问题:

1、在往C:\Windows目录下写文件时,jvm并没有报错,但文件也没有生成。理论上应该会报SecurityException例外。

程序如下:
blic   class   VistaTest1   {
public   static   void   main(String[]   args)   {
String   windir   =   System.getenv( "windir ");
File   file   =   new   File(windir,   "a.txt ");
BufferedWriter   bw   =   null;
try   {
System.out.println( "file   path: "   +   file.getCanonicalPath());
System.out.println( "file   exists:   "   +   file.exists());
System.out.println( "file   can   write:   "   +   file.canWrite());
System.out.println( "file   create   new   file:   "   +   file.createNewFile());

bw   =   new   BufferedWriter(new   FileWriter(file));
bw.write( "fjdlsakfjsf ");
bw.flush();
}   catch   (IOException   e)   {
e.printStackTrace();
}   finally   {
try   {
bw.close();
}   catch   (Exception   e)   {}
}

}
}


2、在我将我用户目录下的Document等目录转移到D:\home\xxx下时,在正常的JAVA程序中通过System.getProperty()获取系统属性user.home时,返回的是D:\home\xxx,而在Applet下返回却是C:\user\xxx。怎么会出现这两个不同的值?

好郁闷啊!不知道各位是否知道是什么原因引起的,是我的程序有问题,还是JVM的bug?

我的开发环境:

操作系统:Vista   Ultimate
系统用户:   具有Administrators权限的用户xxx
JAVA版本:   1.6.0_01
开发工具:   Eclipse   3.3R3

------解决方案--------------------
可能是运行环境不一致吧,你的applet是带环境参数运行的么
------解决方案--------------------
这里估计没有多少人用vista吧,本来做java就耗机器性能,再整个vista,跑不动了