2012-11-21 35 views
0

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

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

第二行在浏览器中不起作用,但是在Netbeans applet查看器中它不起作用。

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

谷歌浏览器我看到下面的消息:

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

我猜小程序“认为”,我想访问用户PC /节目,但我想开始对程序服务器。

我该怎么办?

+1

你能详细说明“不起作用”吗?你怎么知道的?你期望看到什么,实际发生了什么? – GargantuChet

+0

好吧,窗口是我的小程序,它确实显示“运行时”,但不是“执行CMD”,我不知道如何显示更多细节...我猜小程序“认为”我想获得访问用户PC/programms,但我想在服务器上启动一个程序:S – user1843351

+0

好吧,在谷歌浏览我看到以下消息 “access denied(”java.io.FilePermission“”<>“”execute“)” – user1843351

回答

2

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

解决此问题的最佳方法是让沙箱小程序在它来自的同一主机上调用Web服务(servlet,JSP,PHP,ASP ..)。让Web服务创建Process ,并将输出提供给applet以供消费/显示。

1. 另外,经过从runtime.exec Wiki &链接落实所有建议在Java世界的文章,但对于1.5+使用ProcessBuilder创建Process

+0

To帮助你: 我必须编写第二个applet来实现这个过程。我从第一个小程序调用第二个小程序并从那里获取结果?我必须授予其中一个小程序的任何权利吗? 有没有更简单的方法? – user1843351

+0

不,我不是指两个小程序,请参阅更新。你是否已经通过Java World文章了?显示更新的代码作为对问题的修改。 –

+0

好的,谢谢你的帮助,我发现了一个用java创建服务的教程,我会试试这些... – user1843351

0

好吧,我写了一个服务来创建过程,并通过wsimport创建了一个“客户端类”...在netbeans applet管理器中一切正常,但是当我在浏览器中启动该applet时,applet并不请求服务,甚至当我将我的applet放在本地web服务器(xampp)上并在同一客户端启动服务时。我想如果两个人都在同一个客户端,我不必签署我的小程序? (请注意,如果我必须使这个新问题或对我的问题的答案...)

相关问题