2012-02-22 130 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