感到沮丧。这在开发环境中可以运行,但在生产环境中不能运行。这似乎是权限问题,但我不能假设(因为网络映射对每个人都是开放的,并且从两台机器都可以访问)。
我在属性文件中有一个目录:
- gohere=\\main\sub
在我的代码中,我正确地从属性文件中读取了目录。以下是代码:
File dir = new File(dirFromProperty); // \\\\main\\sub
System.out.println("dirFromProperty = " + dirFromProperty);
System.out.println("dir File = " + dir); //looks right
System.out.println("dir.isDirectory = " + dir.isDirectory()); //false?
System.out.println("dir.isFile = " + dir.isFile()); //false?!
System.out.println("dir.isHidden = " + dir.isHidden()); //false
if(dir.isDirectory()) {
//never gets here
}
值得注意的是:
- 这段代码在本地工作得很好。但一旦在另一个服务器上运行,它就会失败,因为它认为这不是一个目录。这个目录可以从两台机器上访问,已经确认过。
你有什么想法吗?我正在疯狂尝试找出问题所在。
编辑:
现在看来,这似乎是Windows任务计划程序的问题。我可以通过CMD成功运行应用程序。但是从任务管理器中,它不能识别网络路径?
第二次编辑:
我已经找到了解决问题的方法。这与Java无关,似乎与Windows任务设置和通过Java中的File类访问文件有关。