如何在多个线程中运行jar文件?

时间:2012-03-29 13:38:57

标签: java multithreading jar

我需要在多个线程/核心中运行可执行的JAR文件。 JAR文件未实现Runnable。我一直在寻找一种方法,并没有找到一个。是否可以使JAR文件使用多个线程/核心而无需访问源代码?

目前。如果我只是正常运行JAR文件,它只使用一个核心。

3 个答案:

答案 0 :(得分:8)

没有办法神奇地制作程序(无论是打包在Java JAR文件中还是以其他方式打包)都会自动使用多个核心。该程序必须编写为使用多个核心 - 没有别的办法。

答案 1 :(得分:3)

不,你不能。您可以在不同的线程中运行运行相同JAR的多个java进程,但这可能不是您想要的。

答案 2 :(得分:1)

如果jar是可执行jar,那么它有一个main方法(主类列在jar文件的清单中)。您可以在自己的Runnable实例中调用此main方法。

但是,如果此jar中的类在没有适当同步的情况下使用静态资源,则此策略将不起作用。如果是这种情况,你可以为每个Runnable设置一个单独的ClassLoader,并在自己独立的ClassLoader中运行jar的每个实例(然后你需要使用反射来调用main方法)。