inuyasha01
本帖最后由 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. C:\Users\Administrator>java -version
  2. java version "1.8.0_131"
  3. Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
  4. Java HotSpot(TM) 64-Bit Server VM (build 23.131-b11, mixed mode)
复制代码
(后来换了1.8.0_202 jdk也是依然不行)
有没有大佬曾经尝试过让 spigot 在 JDK 环境中运行的?
或者有没有能让自己plugin正确调用JDK sun 包的方式? 万分感谢  

StackTrace Detail:
  1. java.lang.NoClassDefFoundError: com/sun/tools/attach/VirtualMachine
  2.         at com.test.MyCustomPlugin.attachAgent(MyCustomPlugin.java:79) ~[?:?]
  3.         at com.test.MyCustomPlugin.onEnable(MyCustomPlugin.java:39) ~[?:?]
  4.         at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[spigot-1.16.3.jar]
  5.         at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:351) ~[spigot-1.16.3.jar]
  6.         ...
  7. Caused by: java.lang.ClassNotFoundException: com.sun.tools.attach.VirtualMachine
  8.         at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_131]
  9.         at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:167) ~[spigot-1.16.3.jar]
  10.         at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_131]
  11.         ...
复制代码





1850343382
已帮助楼主解决

第一页 上一页 下一页 最后一页