使用内部 class 从 Java applet 运行单独的进程

Running separate process from Java applet using internal class

我需要 运行 将进程与 Java applet 分开。我想使用位于 jar:

中的 class
myApplet.jar
 - packagename.MainApplet.class
 - packagename.ProcToRun.class

文件 MainApplet 具有接口 Applet 实现,并且在此代码内部我想 运行 ProcToRun class 作为单独的进程。 ProcToRun 主要方法。

我试过这样的代码:

Process p = new ProcessBuilder("java", "-cp", ".;./myApplet.jar", ProcToRun.class.getName()).start();

和类似的(Runtime.exec(command),不同的符号 - \\, / 或带有完整的 url),但我得到:

Error: Could not find or load main class packagename.ProcToRun

Java.exe 可见,小程序已签名 - 拥有所有权限,使用 win 8.1,java 8 u 25。我认为 classpath 有问题,但我找不到解决方案。

Java 命令不能使用 Jar 的 URLs 到 运行,因此在尝试 运行 之前必须明确地将 Jar 下载到本地文件系统。

但是在看到 Process 时,有两个提示:

  1. 请参阅 When Runtime.exec() won't 以了解有关正确创建和处理流程的许多有用技巧。然后忽略它引用 exec 并使用 ProcessBuilder 创建进程。
  2. 但是applet应该建立一个URLClassLoader指向Jar,然后调用感兴趣的构造函数或main(String[])。如有必要,将调用包装在 SwingWorker.