在jar中运行jar的问题 - IllegalArgumentException

时间:2015-01-03 01:33:22

标签: java jar executable-jar

我在jar文件Test1中包含了jar文件Test2,我执行了Test1。当我尝试使用java.awt.Desktop执行Test2时,我收到java.lang.IllegalArgumentException: URI is not hierarchical异常和消息。当我将Test2与Test1分开时(即不同文件夹中的Test2),我可以成功地完成它,并像下面那样访问它:

Desktop.getDesktop().open(new File("path-to-file\\Test2.jar"));

我可以从我的IDE中执行以下操作,没有任何问题:

Desktop.getDesktop().open(new File(Test.class.getResource("Test2.jar").toURI()));

当我使用上面的代码行运行jar文件Test1时,我遇到运行Test2的问题。

通过研究,我了解到你必须做InputStream is = Test.class.getClassLoader().getResourceAsStream(...);之类的事情。然而,我无法弄清楚是什么,如果有的话,你必须使用这个InputStream从jar中成功执行一个jar,或者这个{ {1}}确实使URI成为分层结构。到目前为止,这是我提出的(我不知道我的第一个文件是否正确):

InputStream

有人能说清楚这个吗?

0 个答案:

没有答案