Skip to content
This repository has been archived by the owner on Mar 14, 2019. It is now read-only.

ERROR: java.lang.NoClassDefFoundError: com/sun/tools/attach/VirtualMachine #36

Open
yangl opened this issue Jun 14, 2012 · 8 comments
Open
Labels

Comments

@yangl
Copy link

yangl commented Jun 14, 2012

D:\JAVA>java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar housemd-assembly-0.2.1.jar
ERROR: Missing parameter: pid
Missing parameter: pid

D:\JAVA>java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar housemd-assembly-0.2.1.jar 2020
ERROR: java.lang.NoClassDefFoundError: com/sun/tools/attach/VirtualMachine
ERROR: You can get more details in /tmp/housemd.err.2020
java.io.FileNotFoundException: \tmp\housemd.err.2020 (系统找不到指定的路径。)

D:\JAVA>java -version
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)

@zhongl
Copy link
Member

zhongl commented Jun 14, 2012

抱歉, 用户指南有误导, 上面的命令在Windows下执行的话, $JAVA_HOME不被视为环境变量, 这会导致tools.jar没被加载, 而最终提示上面的错误.

请将环境变量$JAVA_HOME改为%JAVA_HOME%, 并请确保你设置好了%JAVA_HOME%.

还不行的话, 请直接将$JAVA_HOME/lib/tools.jar置换成你本级指向tools.jar的绝对路径.

@zhongl
Copy link
Member

zhongl commented Jun 14, 2012

正确运行的命令是:

java -Xbootclasspath/a:D:\JAVA\JDK\lib\tools.jar -jar housemd-assembly-0.2.1.jar 3924

好不容易找了台Window的机器, 测试运行了一下, 即使路径填写正确, 还是会因为操作系统使用路径分隔符不同而导致无法成功"连接"目标进程, 请见 #37

由于HouseMD是在Linux环境下, 且主要的目标应用场景也是Linux, 所以目前在Windows下的测试工作还是零, 囧, 不好意思!

期待你能为HouseMD在Windows下正常运行贡献一点力量哦:)

@zhongl zhongl closed this as completed Jun 14, 2012
@zhongl
Copy link
Member

zhongl commented Jun 15, 2012

你说的没错:), 我Windows下开发经验不足, 囧.

话说, 出现java.lang.UnsatisfiedLinkError: no attach in java.library.path很有可能是, 执行java不是JDK的, 而是JRE.

如果你替换成JDKjava, 再次执行java -Xbootclasspath:D:/JAVA/JDK/lib/tools.jar -jar housemd-assembly-0.2.1.jar 3924应该会看到 #37 中出现的问题, 目前版本实现对跨平台还是考虑不周全.

最后, Xbootclasspath后的/a是一定要有的, 它表示append一个额外的jar, 没有它表示替换原有的默认值, 这会导致连java.lang.Object都找不到, 呵呵, 更多信息请运行java -X, 参考显示结果的解释.

无论如何, 非常感谢关注HouseMD, 希望我们能让它能帮助到更多java程序员. :)

@zhongl zhongl reopened this Jun 15, 2012
@zhongl
Copy link
Member

zhongl commented Jun 15, 2012

HouseMD咱不会考虑实现远程, 一方面线上诊断的场景中网络连接本身存在障碍, 这点在为什么要有HouseMD中也提到了; 另外, 实现远程意味着HouseMD必须的考虑网络异常对交互诊断过程的影响, 这样引入的复杂性与风险, 和带来的好处相比不划算

@wendal
Copy link

wendal commented Jun 15, 2012

你把这一层抽象出来, 等其他人实现呗

@vintagewang
Copy link

聚石, 跨平台的问题, 看下这个能不能解决你的问题。
https://github.com/vintage-wang/jwrapper

@zhongl
Copy link
Member

zhongl commented Jun 15, 2012

好, 看看先:)

@leafgray
Copy link

曾一度想跟着做一下让HouseMD在windows上运行起来.
1.scala的多行文本编译后换行跟源文件的格式有关.所以直接拖下来的代码,test-case很多failed.
2.即使正确运行起来了,console还有些问题.只能用jline.UnsupportedTerminal.敲命令的时候没有回显,可用性就不高了.后来再想想windows估计需求也不是很多,就放弃了..... 汗.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

5 participants