繁体   English   中英

如何在可运行的jar程序中获取资源jar路径?

[英]How to get resource jar path in runnable jar program?

我制作了一个可运行的jar,其中包含另一个jar作为资源。 在执行程序期间,取决于用户的操作,我需要将资源作为另一个Java程序来调用,例如。 java -jar m.jar。 所以我要问的是如何在jar文件中获取资源jar的路径,以便可以像这样运行它Runtime.getRuntime()。exec(...); 还是有其他方法可以做到这一点? 我使用过getClass.getResource()。getPath(),但是我一直在获取jar名称,而不是绝对路径。 我忘记了如何获取路径,但我确实记得该路径具有“!” 在jar之后,例如/module.jar!/module2.jar或类似的名称。 任何帮助,将不胜感激。

jar是压缩的zip文件, 不是您可以执行java -jar MainApp.jar/m.jar的普通目录。

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

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

第二个类是CallerClass,然后在CallerClass中执行Main main = Main();。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM