2013-12-15 19 views
0

目前,我的包含主类Main.class和另一个类Other.class的包mypackage的可运行JAR文件。在子流程中运行类的另一种方法

重点是我试图运行Other.class在运行整个JAR的进程的子进程中。

现在,我有我的Main.class是这样的:

public static void main(String[] args) { 
    Runtime.getRuntime().exec("java -cp " + Main.class.getProtectionDomain().getCodeSource().getLocation().getPath() + " mypackage.Other"); 
} 

这工作,但我有一个问题。我还有一个程序,它运行JAR文件,然后立即从HDD中删除它(由于安全原因)。因此,当源JAR文件不存在时,-cp参数内容无法生效。

所以我正在寻找一些方法来实现同样的事情,但没有JAR文件。

理念:也许只是运行编译Other.class从RAM或任何地方的JAR内容从硬盘删除其运行后...

有什么办法? 谢谢。

+0

看来你是完全错误的方式。你的问题是AB问题的一个典型例子。你有问题A,你认为你知道它的解决方案。现在只有一个小问题:问题B.尝试解释问题A.可能你会得到更好的建议。 – AlexR

回答

0

您可以将.jar加载到原始二进制文件的ram中,然后将其删除。当您需要再次运行时,将其保存到硬盘&运行。

你为什么要这样做?写病毒?

相关问题