2011-03-29 72 views
0

我做了一個簡單的小程序,它只需點擊按鈕,調用一個螞蟻目標通過批處理文件。要做到這一點我使用從html頁面運行小程序

ExecTask exec = new ExecTask(); 
exec.setExecutable("run.bat"); 
Commandline.Argument arg = exec.createArg(); 
arg.setValue("-buildfile D:/cloudengine/Applet/build.xml"); 
exec.execute(); 

當我從eclipse運行這個工作正常。但我的要求是從一個HTML頁面運行這個,所以我已經創建了applet標記一個簡單的HTML

<APPLET ALIGN="CENTER" CODE="HtmlAntTest.class" WIDTH="800" HEIGHT="500"></APPLET> 

但在瀏覽器的Java控制檯,我得到異常下方點擊按鈕

Exception in thread "AWT-EventQueue-2" java.lang.ExceptionInInitializerError 
at org.apache.tools.ant.taskdefs.ExecTask.<init>(ExecTask.java:72) 
. 
. 
. 
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission file.encoding read) 

任何指針會有很大的幫助。在此先感謝

回答

0

您需要授予小程序的附加權限。這裏詳細解釋: http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html

+0

謝謝das。從給定的鏈接中獲得一些安全基礎知識。還有一個問題,爲什麼這個簡單的小程序需要訪問桌面......現在它給了我一個異常java.security.AccessControlException:訪問被拒絕(java.io.FilePermission C:\ Documents and Settings \ admin \ Desktop read) – Sakhi 2011-03-29 12:48:18

+0

@Sakhi那麼我只能猜測這個......也許它只是當前的工作目錄,並且ant試圖在那裏寫一個日誌文件。你應該嘗試授予必要的許可,並檢查改變了什麼......也許你可以調整你的螞蟻目標...正如我所說:猜測;) – 2011-03-29 13:29:33

0

正如das_weezul所評論的那樣,該applet將需要提升特權才能做到這一點。雖然更改策略文件是實現這一目標的一種方式,但出現部署時出錯和不切實際。

爲了獲得在部署的時候信任的小程序,這將是必要的:

  1. 放入一個JAR文件的類(見Packaging Programs in JAR Files瞭解詳細信息)。
  2. 對Jar文件進行數字簽名(詳情請參閱Signing and Verifying JAR Files)。
  3. 當提示信任它時,讓最終用戶確定該代碼。

需要一點時間才能在構建文件中設置代碼簽名,但一旦正確完成,可能會被遺忘。