2010-07-02 235 views
-1

我試圖運行從GWT服務器端的.exe文件,但它給我一個拒絕訪問error.Exact錯誤是: -運行.exe文件在服務器端

java.security.AccessControlException:在在 java.lang.SecurityManager中 java.security.AccessControlContext.checkPermission(未知 源)在 java.security.AccessController.checkPermission(未知 源) 訪問被拒絕(java.io.FilePermission中 <>執行)。 checkPermission(Unknown Source)at com.google.appengine.tools.development.DevAppServerFactory $ CustomSecurityManager.checkPermission(DevAppServerFactory.java:166) 處 java.lang.ProcessBuilder.start java.lang.SecurityManager.checkExec(未知 源)(未知 源)在 java.lang.Runtime.exec(未知源) 在java.lang.Runtime.exec(未知 源)

,這就是在錯誤印 - >「錯誤===訪問被拒絕(java.io.FilePermission「ALL FILES」執行)「

我甚至沒有裏德通過 改變java.policy文件(Here)更改文件的安全權限,但它仍然給出了同樣的error.I添加這些行 -

授予{權限 java.io.FilePermission中的「C :\ Documents and Settings \ User \ Desktop \ ABCD.exe「, 」execute「; };

我 還試圖將其放置在/戰爭/ WEB-INF但vain.Some在網上搜索導致我的事實,谷歌應用程序引擎可能是這個原因。 有人可以幫助我嗎?
p.s.我看到類似的帖子(Here),其中提到在服務器端應該可以這樣做。

回答

1

您的問題不是GWT,而是應用程序引擎開發環境。 Google App Engine Environment的設計考慮了可擴展性,因此應用程序完全從服務器硬件到操作系統的所有內容都被抽象出來。

簡而言之,您嘗試的是GAE無法實現的。

如果這個問題無論如何都涉及到this,如果你的目標是一個快速和骯髒的GWT原型無意在appspot.com部署,那麼你可以嘗試沒有GAE一個普通的GWT項目。 Runtime.exec命令應該在沒有任何調整的情況下在jetty上正常執行(只要您使用GWT創建Web應用程序項目並且不支持GAE)。

這就是說,如果你的目標是要在App Engine上運行,那麼你在錯誤的方向是完全負責。你試圖達到的是不可能的。

3

這與GWT無關。您的服務器是Google App Engine開發者服務器,您不能在Google App Engine上運行可執行文件。

引述Google App Engine java overview page

JVM上運行在一個安全的「沙盒」環境隔離的服務和安全應用。沙箱確保應用程序只能執行不影響其他應用程序的性能和可伸縮性的操作。例如,應用程序無法產生線程,將數據寫入本地文件系統或進行任意網絡連接。一個應用程序也不能使用JNI或其他本地代碼。 JVM可以執行在沙箱限制內運行的任何Java字節碼。

+0

那麼,有一些工作圍繞這個我幾乎接近完成我的項目,如果這個事情的作品出來.... – Manish 2010-07-02 15:00:00

+0

@Manish:可執行文件不會因政策的谷歌應用程序引擎允許的。這不是技術上的缺點,而是Google的有意選擇。一種選擇是將可執行文件的功能編碼到Java應用程序中。基本上GAE上運行服務器端的任何東西都必須是你的代碼。 – MAK 2010-07-02 15:05:45

+0

@Manish:這將不會用這種格式解決。您無法在Google App Engine上執行'.exe'文件。 – 2010-07-02 15:09:51

0

你一定要明白,谷歌無處不在運行Linux操作系統?另外,您在Java或Python中究竟做了什麼,您需要Windows本機應用程序?