Я разрабатываю Java-приложение, которое способно запускать кроссплатформенное с условием в версии JRE как минимум 1.6.0.14. Все отлично работает на машине с Windows (JRE1.6.0.14), но нежелательный результат в Ubuntu 8.04 с JRE1.6.0.14.
Я нашел ошибки здесь:
Document doc = docBuilder.parse (new File("webservices.xml"));
На Windows-машине все работает нормально, docBuilder будет ссылаться на файл, в котором находится мое приложение.
Пример: если мое приложение находится в C: \ myApp \ start.jar, оно будет ссылаться на webservives.xml в C: \ myApp \ webservices.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.
Запуск моего приложения с использованием Netbean 6.5.1 в Ubuntu возвращает правильный 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, как в Windows Machine?