本帖最后由 inuyasha01 于 2020-12-2 14:19 编辑
最近想写个spigot的classTransformer ASM,但所有java agent内容都需要JDK的 sun.tools.VirtualMachine 也就是那个tools.jar库作为依赖。
我自己的插件依赖它没什么问题,但运行起来就会提示 spigot核心 抛出 ClassNotFoundExcpetion: VirtualMachine , 也就是 sun.tools 不存在。
于是我就怀疑我是不是没装好 JDK, 检查了下环境变量 CLASSPATH 和 %JAVA_HOME% 都直接指向 C:/ProgramFile/Java/jdk1.8.0_131/bin 没什么问题。
spigot的java路径也是 %JAVA_HOME% , 也就是 JDK,但还是抛 ClassNotFoundExcpetion。太奇怪了
命令行的测试返回如下,即便直接运行JDK包里的 java.exe -version 也是提示下面三行,不知道能不能在这里区分 JRE 还是 JDK复制代码(后来换了1.8.0_202 jdk也是依然不行)
有没有大佬曾经尝试过让 spigot 在 JDK 环境中运行的?
或者有没有能让自己plugin正确调用JDK sun 包的方式? 万分感谢
StackTrace Detail:
复制代码
最近想写个spigot的classTransformer ASM,但所有java agent内容都需要JDK的 sun.tools.VirtualMachine 也就是那个tools.jar库作为依赖。
我自己的插件依赖它没什么问题,但运行起来就会提示 spigot核心 抛出 ClassNotFoundExcpetion: VirtualMachine , 也就是 sun.tools 不存在。
于是我就怀疑我是不是没装好 JDK, 检查了下环境变量 CLASSPATH 和 %JAVA_HOME% 都直接指向 C:/ProgramFile/Java/jdk1.8.0_131/bin 没什么问题。
spigot的java路径也是 %JAVA_HOME% , 也就是 JDK,但还是抛 ClassNotFoundExcpetion。太奇怪了
命令行的测试返回如下,即便直接运行JDK包里的 java.exe -version 也是提示下面三行,不知道能不能在这里区分 JRE 还是 JDK
- C:\Users\Administrator>java -version
- java version "1.8.0_131"
- Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
- Java HotSpot(TM) 64-Bit Server VM (build 23.131-b11, mixed mode)
有没有大佬曾经尝试过让 spigot 在 JDK 环境中运行的?
或者有没有能让自己plugin正确调用JDK sun 包的方式? 万分感谢
- java.lang.NoClassDefFoundError: com/sun/tools/attach/VirtualMachine
- at com.test.MyCustomPlugin.attachAgent(MyCustomPlugin.java:79) ~[?:?]
- at com.test.MyCustomPlugin.onEnable(MyCustomPlugin.java:39) ~[?:?]
- at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[spigot-1.16.3.jar]
- at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:351) ~[spigot-1.16.3.jar]
- ...
- Caused by: java.lang.ClassNotFoundException: com.sun.tools.attach.VirtualMachine
- at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_131]
- at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:167) ~[spigot-1.16.3.jar]
- at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_131]
- ...
已帮助楼主解决