我需要在多个线程/核心中运行可执行的JAR文件。 JAR文件未实现Runnable。我一直在寻找一种方法,并没有找到一个。是否可以使JAR文件使用多个线程/核心而无需访问源代码?
目前。如果我只是正常运行JAR文件,它只使用一个核心。
答案 0 :(得分:8)
没有办法神奇地制作程序(无论是打包在Java JAR文件中还是以其他方式打包)都会自动使用多个核心。该程序必须编写为使用多个核心 - 没有别的办法。
答案 1 :(得分:3)
java
进程,但这可能不是您想要的。
答案 2 :(得分:1)
如果jar是可执行jar,那么它有一个main方法(主类列在jar文件的清单中)。您可以在自己的Runnable实例中调用此main方法。
但是,如果此jar中的类在没有适当同步的情况下使用静态资源,则此策略将不起作用。如果是这种情况,你可以为每个Runnable设置一个单独的ClassLoader,并在自己独立的ClassLoader中运行jar的每个实例(然后你需要使用反射来调用main方法)。