0

我有一个小程序,它必须exec在同一台服务器上运行一个程序。

Runtime c = Runtime.getRuntime();
window.finishedQuery("Got Runtime...");
Process p = c.exec(String.format("cmd");
window.finishedQuery("Excecuted CMD");

第二行在浏览器中不起作用,但在 Netbeans 小程序查看器中起作用。

window是我的小程序,它确实显示got runtime但不显示excecuted CMD

在谷歌浏览器中,我看到以下消息:

access denied ("java.io.FilePermission" "<<ALL FILES>>" "execute")

我猜小程序“认为”我想访问用户的 PC/程序,但我想在服务器上启动一个程序。

我需要做什么?

4

2 回答 2

2

如果由小程序创建,则将在客户端机器Process的 JVM 中创建。 该虚拟机将无法调用服务器上的方法。

解决此问题的最佳方法是让沙盒小程序调用它所在主机上的 Web 服务(servlet、JSP、PHP、ASP..)。让网络服务创建Process1,并将输出提供给小程序以供消费/显示。

1.另外,浏览从runtime.exec Wiki链接的 Java World 文章并实施所有建议,但对于 1.5+,使用 aProcessBuilder创建Process.

于 2012-11-22T05:48:38.103 回答
0

好的,我编写了一个服务来创建进程并通过 wsimport 创建了一个“客户端类”......在 netbeans 小程序管理器中一切正常,但是当我在浏览器中启动小程序时,小程序不请求服务,即使当我把我的小程序放在本地网络服务器(xampp)上并在同一个客户端上启动服务。我想如果两者都在同一个客户端上,我不必签署我的小程序?(注意确定我是否必须将此作为新问题或对我的问题的回答......)

于 2012-11-29T17:21:30.813 回答