如何在runnable jar程序中获取资源jar路径?

时间:2014-05-15 15:18:40

标签: java eclipse jar resources

我已经制作了一个可运行的jar,其中包含另一个jar作为资源。在程序执行期间,取决于用户的操作,我需要将资源称为另一个java程序,例如。 java -jar m.jar。所以我要问的是如何在jar文件中获取资源jar的路径,以便我可以像运行Runtime.getRuntime()。exec(...);或者还有其他方法吗?我使用了getClass.getResource()。getPath(),但我只是继续获取​​jar名称,而不是绝对路径。我忘记了如何走这条路,但我确实记得路径已经过了!'在jar之后,例如/module.jar!/ module.jar或类似的东西。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

一个jar是压缩的zip文件,不是一个普通的目录,你可以做java -jar MainApp.jar/m.jar

要解决此问题,您需要将m.jar文件放在主jar文件外,然后才能正常执行。

答案 1 :(得分:0)

只需将第一个jar放在类路径中,然后从第二个类中调用第一个类,就像实例化任何其他类一样。 例如,如果原始调用是java -cp ./m.jar Main

第二类是CallerClass,然后在CallerClass中做了一个 Main main = Main();