2012-02-22 134 views
0

在eclipse中我有一個java項目,它從主方法運行一個外部程序(一個.exe)。該程序位於與源文件夾相同級別的項目文件夾下的文件夾內。現在,當我從Eclipse運行這個程序時,它就像一個魅力。但是,當我導出一個jar文件時,它不會。我最終得到一個包含ext文件夾的jar文件,但我仍然得到一個FileNotFoundException。 我確實想過使用getClass.getResource('path'),但是我不能在靜態主要方法中使用它。使用包含的外部工具運行Java jar文件

任何想法?

+0

收益率「的方法的getResource(字符串)是未定義的類型類名」 – SeeDoubleYou 2012-02-22 23:12:36

回答

0

要解決靜態問題,你可以使用ClassLoader.getSystemClassLoader()的getResource(「路徑」)

這可能會或可能不會取決於你如何啓動您的.exe工作(它不現在真的有一個文件路徑,因爲它位於.jar中,我猜它不會) - 在.jar中有一個.exe文件對我來說似乎很奇怪。爲什麼不把它放在.jar之外,並用配置參數指定它的位置?這會更有意義。

+0

是的,奇怪的是,但我真的想在這種情況下,一個可運行jar文件。 – SeeDoubleYou 2012-02-22 23:10:32

+0

我得到「方法getClassLoader()未定義爲類型系統」 – SeeDoubleYou 2012-02-22 23:11:35

+0

嘗試ClassLoader.getSystemClassLoader()。getResource('path') – Peter 2012-02-23 02:53:03

0

嘗試

Foo.class.getResource("..."); 
+1

產生「Foo無法解析爲類型」 – SeeDoubleYou 2012-02-22 23:13:32

+1

用您的類名替換Foo – 2012-02-22 23:17:19

+1

然後它會失敗,因爲它是從靜態方法運行的 – SeeDoubleYou 2012-02-22 23:24:09