首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JavaRebel 关于 noverify 跟 javaagent 参数的使用

2012-10-31 
JavaRebel 关于 noverify 和 javaagent 参数的使用一般情况下,使用JavaRebel 时都配置两个 JVM 参数:-nove

JavaRebel 关于 noverify 和 javaagent 参数的使用
一般情况下,使用  JavaRebel 时都配置两个 JVM 参数:-noverify 和 -javaagent
一、-javaagent 参数
这个参数是 JDK5 引入的,可以通过 java -h 查看其帮助信息
// 省略
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see java.lang.instrument
// 省略

通过使用 -javaagent 参数,用户可以在执行 main 函数前执行指定 javaagent 包中的特定代码,甚至可以动态的修改替换类中代码。
javaagent 的代码与你的 main 方法在同一个 JVM 中运行,并被同一个 system classloader 装载,被同一的安全策略(security policy) 和上下文(context)所管理。

如何写一个 javaagent 程序呢?实现很简单,只需要在类中实现 premain 接口:
public static void premain(String agentArgs, Instrumentation inst)

例如可以动态将下面方法中的 true 改为 false

 method: test signature: ()I) Accessing value from uninitialized register 2
Could not find the main class: testverify.TestVerify.  Program will exit.

执行:java -noverify testverify.TestVerify
结果:1


热点排行