当前位置: 代码迷 >> java >> 在服务器端运行.exe
  详细解决方案

在服务器端运行.exe

热度:115   发布时间:2023-08-04 09:24:50.0

我正在尝试从GWT的服务器端运行.exe,但这给了我一个拒绝访问错误。确切的错误是:-

java.security.AccessControlException:访问被拒绝(java.io.FilePermission <>执行),位于java.security.AccessControlContext.checkPermission(未知源),位于java.security.AccessController.checkPermission(未知源),位于java.lang.SecurityManager.checkPermission (未知源),位于com.google.appengine.tools.development.DevAppServerFactory $ CustomSecurityManager.checkPermission(DevAppServerFactory.java:166),位于java.lang.SecurityManager.checkExec(未知源),位于java.lang.ProcessBuilder.start(未知源) ),位于java.lang.Runtime.exec(未知来源)

这就是错误->“错误===访问被拒绝(java.io.FilePermission”所有文件“执行)中打印的内容”

我什至尝试通过更改java.policy file( )来更改文件的安全权限,但它仍然出现相同的错误。我添加了以下几行-

授予{权限java.io.FilePermission“ C:\\ Documents and Settings \\ User \\ Desktop \\ ABCD.exe”,“ execute”; };

我也曾尝试将其放在/ war / WEB-INF下,但徒劳无功。网上的一些搜索使我想到了Google应用程序引擎可能是造成这种情况的原因。 有人可以帮我弄这个吗?
ps我看到了类似的帖子 ,其中提到在服务器端应该可以进行类似的操作。

这与GWT无关。 您的服务器是Google App Engine开发服务器,并且不允许您在Google App Engine上运行可执行文件。

引用

JVM在安全的“沙盒”环境中运行,以隔离您的应用程序以实现服务和安全性。 沙箱可确保应用程序只能执行不会干扰其他应用程序的性能和可伸缩性的操作。 例如,应用程序无法生成线程,无法将数据写入本地文件系统或进行任意网络连接。 应用程序也不能使用JNI或其他本机代码。 JVM可以执行在沙箱限制内运行的任何Java字节码。

您的问题不是GWT,而是App Engine开发环境。 Google App Engine环境的设计考虑到可伸缩性,因此该应用程序是从服务器硬件到操作系统的所有内容中完全抽象的。

简而言之,GAE无法实现您正在尝试的功能。

如果这个问题与有关,并且如果您的目标是快速且肮脏的GWT原型,并且无意在appspot.com上进行部署,则可以尝试不使用GAE的普通GWT项目。 Runtime.exec命令应该在码头上正常执行,而无需进行任何调整(前提是您创建的Web应用程序项目仅包含GWT而没有GAE支持)。

也就是说,如果您的目标是在App Engine上运行,那么您将完全朝错误的方向前进。 您试图实现的目标是不可能的。

您知道Google到处都运行Linux吗? 另外,您需要Windows本机应用程序在Java或Python中做什么呢?

  相关解决方案