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

时间:2015-01-09 10:03:23

标签: java process applet classpath

我需要从Java applet运行单独的进程。我想使用类,它位于jar:

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

文件MainApplet具有接口Applet实现,并且从此代码内部我想将ProcToRun类作为separete进程运行。 ProcToRun 具有主要方法。

我尝试过这样的代码:

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

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

  

错误:无法找到或加载主类packagename.ProcToRun

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

1 个答案:

答案 0 :(得分:1)

Java命令无法使用Jar运行URL,因此在尝试运行Jar之前,有必要将Jar明确地下载到本地文件系统。

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

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