使用Java代理自动化JNLP应用程序

时间:2012-12-01 14:57:15

标签: java applet jnlp

我正在尝试使用进入“应用程序的VM实例”的Java代理在jnlp应用程序中自动执行某些操作,然后创建一个新的Swing GUI实例(以及我的自动化类)。 p>

它工作正常,我可以访问框架的组件。问题是我的GUI作为“applet”运行,它在我的GUI角落给我一个黄色的恼人的三角形,并且还切断了我的权限(比如文件访问)。

JNLP在JNLP文件中具有<application-desc main-class="x"/>设置,因此该应用程序不会作为小程序运行。

如何将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;
      }
    } 
  }
}

1 个答案:

答案 0 :(得分:2)

  

问题是我的GUI作为“applet”运行,它在我的GUI角落给了一个黄色的恼人的三角形..

不,那是错的。

  1. 它适用于任何applet或JWS应用程序。
  2. 这对用户来说不是一个问题,而是在部署应用时必须面对的挑战。
  3.   

    ..并且还切断了我的权限(比如文件访问)。

    可以在使用Java Web Start部署的任何应用程序或applet中访问本地文件系统,但它需要不同的(JWS特定的)API。这是demo. of using the JNLP file services

    另一方面:

    • 如果代码经过数字签名且JNLP请求j2ee-application-client-permissions,则三角形将消失。
    • 该应用。如果签名且JNLP请求JFileChooser,则可以执行无安全管理员可以执行的所有操作(包括显示all-permissions)。