我需要从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有问题,但我找不到解决方案。
答案 0 :(得分:1)
Java命令无法使用Jar运行URL,因此在尝试运行Jar之前,有必要将Jar明确地下载到本地文件系统。
但在看到Process
时,有两个提示:
exec
并使用ProcessBuilder
创建流程。URLClassLoader
,然后调用感兴趣的构造函数或main(String[])
。如有必要,请将呼叫包裹在SwingWorker
。