javaagent不javaws的JNLP和
问题描述:
工作,我有一个代理JAR(JAR-具有依赖性)与倍美力为javaagent不javaws的JNLP和
public static void premain(String args, Instrumentation instrumentation) {
log.info("Starting Swing Testing Tools");
log.info("Adding global listener using agent");
Toolkit.getDefaultToolkit().addAWTEventListener(new GlobalEventListener(), GlobalEventListener.WINDOW_MASK);
log.info("Starting server");
Thread serverThread = new Thread(new InterceptorServer());
serverThread.start();
}
这是一个拦截器JAR,将监听所有的事件。该课程还包含一个主要的方法。这个JAR的目的是拦截JNLP,以便我们可以获得所有的事件。
现在,当我运行这个JAR使用下面,代理工作正常。
D:\temp>java -jar ListenerAgent-1.0.jar
20170716,12.04.49 [INFO ] - (la.core.Agent.premain(Agent.java:16)) Starting Swing Testing Tools
20170716,12.04.49 [INFO ] - (la.core.Agent.premain(Agent.java:17)) Adding global listener using agent
20170716,12.04.49 [INFO ] - (la.core.Agent.premain(Agent.java:20)) Starting server
20170716,12.04.49 [INFO ] - (la.core.server.InterceptorServer.run(InterceptorServer.java:30)) Server started at port : 50173
C:\Users\GAGAND~1\AppData\Local\Temp\
但是,当我使用下面的CMD线PARAMS启动它,代理不响应,但JNLP打开。
D:\temp>javaws -J-javaagent:"D:\temp\ListenerAgent-1.0.jar" "D:\JNLPs\Notepad.jnlp"
D:\temp>
这里是清单文件:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: Gagandeep Singh
Build-Jdk: 1.8.0_111
Specification-Title: ListenerAgent
Specification-Version: 0.0.1-SNAPSHOT
Implementation-Title: ListenerAgent
Implementation-Version: 0.0.1-SNAPSHOT
Implementation-Vendor-Id: org.gagan
Main-Class: la.core.Agent
Can-Redefine-Classes: false
Can-Retransform-Classes: true
Premain-Class: la.core.Agent
这里是link我的情况下,资源库,你需要找到的任何其他信息。
答
发布解决方案,以防万一有人面临同样的问题。
您需要修改里面你的JRE /斌/安全文件夹中的javaws.policy:
- 备份旧文件
-
与
授予{权限java.security替换现有文本.AllPermission; };