【发布时间】:2009-10-12 13:10:41
【问题描述】:
我开发了一个 Java 应用程序,它能够在 JRE 版本至少为 1.6.0.14 的条件下跨平台运行。在 Windows 机器 (JRE1.6.0.14) 上一切正常,但在带有 JRE1.6.0.14 的 Ubuntu 8.04 中出现意外结果。
我在这里发现了错误:
Document doc = docBuilder.parse (new File("webservices.xml"));
在 Windows 机器上,一切正常,docBuilder 将引用我的应用程序所在的文件。 示例:如果我的应用程序位于 C:\myApp\start.jar ,它将在 C:\myApp\webservices.xml 引用 webservives.xml (这意味着无论我将应用程序文件夹移动到何处,它都将始终引用正确的目录)
但在 Ubuntu 8.04 中它不起作用。
我可以通过在应用程序中使用它来找出问题:
String curDir = System.getProperty("user.dir");
System.out.println(curDir);
无论我将应用程序文件夹放在哪里,curDir 总是返回“/home/user”。 Document doc = docBuilder.parse (new File("webservices.xml")) 在我将 webservices.xml 放入目录 /home/user/webservices.xml 之前不起作用。
在 Ubuntu 中使用 Netbean 6.5.1 运行我的应用程序会返回正确的 curDir,但独立运行我的应用程序会返回错误的 curDir(我使用的 JDK1.6.0.14 和 JRE1.6.0.14 与窗口机器相同)
为什么Document doc = docBuilder.parse (new File("webservices.xml"))在ubuntu JRE1.6.0.14中不能正常工作?
任何想法让我的应用程序在 Ubuntu 8.04 中像在窗口机器中一样独立运行?
【问题讨论】:
-
为什么jar文件中没有webservices.xml?需要换吗?