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

标签 java process applet classpath

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

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

File MainApplet 有接口(interface) Applet 实现,我想从这段代码内部运行 ProcToRun 类作为单独的进程。 ProcToRun main 方法。

我试过这样的代码:

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。我认为类路径有问题,但我找不到解决方案。

最佳答案

Java 命令不能使用 URL 来让 Jar 运行,因此在尝试运行之前必须将 Jar 显式下载到本地文件系统。

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

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

关于java - 使用内部类从 Java applet 运行单独的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27858085/

相关文章:

java - 具有可变参数的静态方法线程安全吗?

python - 如何在 Python 中判断进程 ID

java - 可以在浏览器中启动 JWS 小程序而不是独立启动吗?

java - 选择 X 类 ArrayList 的不同字段

java - 如何更改 JTree 中的 "root"目录名称?

c++ - 在 C++ 应用程序中启动进程并处理它

c# - Process.Start 用户名 'Everyone' ?

Java SSL 握手问题

java - 无法在 Java swing 小程序中添加文本或中心方 block

java - BlackBerry JDE 支持的设备吗?