打包后的JavaAgent修复线程无法被执行
来源:互联网 发布:人工智能 传统制造业 编辑:程序博客网 时间:2024/06/08 11:52
在eclipse上直接用run as application来执行是可以成功从process 2 attach到process 1的,可是用maven把process 2的项目打包成jar包后就attch不成功了,报了如下的错误:
$ java -jar attach-0.0.1-SNAPSHOT-jar-with-all-dependencies.jar 79567956java.util.ServiceConfigurationError: com.sun.tools.attach.spi.AttachProvider: Provider sun.tools.attach.WindowsAttachProvider could not be instantiatedcom.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…成功了….
我的心波澜不惊甚至还有点想写代码…
脑袋空空,口袋空空,加油!
阅读全文
0 0
- 打包后的JavaAgent修复线程无法被执行
- 中fun后硬盘无法打开的修复方法
- 重装Windows后 无法进入ubuntu 的修复方法
- 使用360优化修复系统后无法上网的解决方法
- 使用360修复电脑后,GitLab无法使用的解决办法
- javaagent引发的ClassDefNotFoundException
- javaagent
- javaagent
- 操作系统被入侵后的修复过程
- Grub被损坏后的修复演示
- Android混淆打包后openFileChooser无法使用找不到的解决方法
- Android Studio 打包 release 版本后无法安装的问题
- Android Studio 打包 release 版本后无法安装的问题
- pyinstall打包后的可执行程序无法运行
- Android Studio 打包 release 版本后无法安装的问题
- iOS 打包ipa后无法收到推送消息的解决方法
- 虚拟机克隆后无法联网问题修复
- JavaAgent无法替换运行中的字节码
- 建造者模式
- Java菜鸟学习日记30
- Java8 Optional剖析
- 线程2:线程的生命周期与控制
- Linux中ps命令介绍
- 打包后的JavaAgent修复线程无法被执行
- 升级Android Studio2.3 遇到的坑
- Android-Bitmap压缩总结
- windows安装MongoDB 以及与pyhthon的交互
- java aopalliance-1.0.jar的作用
- Java菜鸟学习日记31
- Linux学习笔记(二)----虚拟机安装Linux系统图文详细过程
- css的那些事儿--css选择器的值得注意之处
- java实现发送手机短信