簡體   English   中英

使用Java代理自動化JNLP應用程序

[英]Automating a JNLP Application using Java Agents

我正在嘗試使用進入“應用程序的VM實例”的Java代理在jnlp應用程序中自動執行某些操作,然后創建我的Swing GUI的新實例(以及我的自動化類)。

它工作正常,我可以訪問框架的組件。 問題是我的GUI作為一個“小程序”運行,它在我的GUI的角落給我一個黃色惱人的三角形,並切斷了我的權限(如文件訪問)。

JNLP在JNLP文件中具有<application-desc main-class="x"/>設置,因此應用程序不會作為applet運行。

如何將Swing GUI作為應用程序而不是applet運行?

JavaAgent的代碼

public class FrameSearcherAgent {

   public static void agentmain(String args) {   

   Frame[] frames = Frame.getFrames();        
   for(Frame f: frames)
   {          
      if(f.getTitle().equals("Frame Title")){
         //Parameter is the Frame I want
         new JFrameAutomateGUI(f).setVisible(true);
         break;
      }
    } 
  }
}

問題是我的GUI作為“applet”運行,它在我的GUI角落給我一個黃色的惱人的三角形。

不,那是錯的。

  1. 它適用於任何applet或JWS應用程序。
  2. 這不是一個問題,而是用戶的安全問題,也是部署應用程序時必須面對的挑戰。

..還切斷了我的權限(比如文件訪問)。

可以在使用Java Web Start部署的任何應用程序或applet中訪問本地文件系統,但它需要不同的(JWS特定的)API。 這是一個演示。 使用JNLP文件服務

另一方面:

  • 如果代碼經過數字簽名並且JNLP請求j2ee-application-client-permissions則三角形將消失。
  • 該應用程序。 如果它已經簽名並且JNLP請求all-permissions那么它將能夠完成它沒有安全管理器(包括顯示JFileChooser )所能做的所有事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM