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,跑不动了