打包后的JavaAgent修复线程无法被执行
2017-08-15 22:23
1681 查看
在eclipse上直接用run as application来执行是可以成功从process 2 attach到process 1的,可是用maven把process 2的项目打包成jar包后就attch不成功了,报了如下的错误:
查了很多资料,有说在process 2上加:
试过不行,也有说把环境变量的path变量加上jre的bin目录:
%JAVA_HOME%/jre/bin
也试了,还是同样的报错,这不是坑爷爷么(沉思脸)
看了下网上讨论的焦点都集中在attach.dll,说是需要动态加载它才能在window上正常做attach的动作。
还有甚者说tools.jar是扥windows版本和linux版本的,两者不能互用。
那到底我遇到的是哪种情况呢,一样样来排查,先从attach.dll着手。
我看了下
%JAVA_HOME%/bin目录
发现没有attach.dll
再看了下
%JAVA_HOME%/jre/bin
居然找到attach.dll了,那有没有可能系统一直读的都是 %JAVA_HOME%/bin目录呢?
于是,我把
%JAVA_HOME%/jre/bin
下面的attach.dll 拷贝到
%JAVA_HOME%/bin
一执行,opss…成功了….
我的心波澜不惊甚至还有点想写代码…
脑袋空空,口袋空空,加油!
$ java -jar attach-0.0.1-SNAPSHOT-jar-with-all-dependencies.jar 7956 7956 java.util.ServiceConfigurationError: com.sun.tools.attach.spi.AttachProvider: Provider sun.tools.attach.WindowsAttachProvider could not be instantiated com.sun.tools.attach.AttachNotSupportedException: no providers installed at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:203) at com.nathan.attach.attach.AttachAPI.main(AttachAPI.java:16) Exception in thread "main" java.lang.NullPointerException at com.nathan.attach.attach.AttachAPI.main(AttachAPI.java:22)
查了很多资料,有说在process 2上加:
static { System.loadLibrary("attach"); }
试过不行,也有说把环境变量的path变量加上jre的bin目录:
%JAVA_HOME%/jre/bin
也试了,还是同样的报错,这不是坑爷爷么(沉思脸)
看了下网上讨论的焦点都集中在attach.dll,说是需要动态加载它才能在window上正常做attach的动作。
还有甚者说tools.jar是扥windows版本和linux版本的,两者不能互用。
那到底我遇到的是哪种情况呢,一样样来排查,先从attach.dll着手。
我看了下
%JAVA_HOME%/bin目录
发现没有attach.dll
再看了下
%JAVA_HOME%/jre/bin
居然找到attach.dll了,那有没有可能系统一直读的都是 %JAVA_HOME%/bin目录呢?
于是,我把
%JAVA_HOME%/jre/bin
下面的attach.dll 拷贝到
%JAVA_HOME%/bin
一执行,opss…成功了….
我的心波澜不惊甚至还有点想写代码…
脑袋空空,口袋空空,加油!
相关文章推荐
- [置顶] [转]Java多线程--让主线程等待所有子线程执行完毕
- Java桌面程序打包成exe可执行文件<转>
- Java中使用Future获取线程异步执行结果的使用
- 对Java文件进行jar打包成可执行文件
- Maven打包可执行的jar文件(包含所有依赖和不存在spring无法解析schema)
- 如何将Java程序打包成exe可执行文件
- 安装了Java Agent的JBoss Appserver由于NoClassDefFound错误而无法启动。
- Java桌面程序打包成exe可执行文件
- JAVA如何让多个线程顺序执行?
- maven-assembly-plugin把java工程打包成为一个可执行的jar包
- Java桌面程序jar打包成exe可执行文件
- Java桌面程序打包成exe可执行文件
- maven-assembly-plugin把java工程打包成为一个可执行的jar包
- linux定时任务生产java服务无法执行问题
- 分享知识-快乐自己:IDEA下maven编译打包Java项目成jar包但是resource下配置文件无法编译
- java工程打包成可执行的jar包后,如何正确引用jar包里的图片
- Java如何等待子线程执行结束
- Java 命令行执行找不到类 —— 错误: 找不到或无法加载主类
- 使用fat jar和exe4j把java程序打包成exe执行文件
- java执行提示 错误: 找不到或无法加载主类