为了账号安全,请及时绑定邮箱和手机立即绑定

无法导入包 org.objectweb.asm

无法导入包 org.objectweb.asm

慕盖茨4494581 2023-05-10 14:08:30
我正在尝试编译其他开发人员的开源自定义库。我已经编译或找到依赖项,但它无法在 gradle 中构建,因为它无法导入 java 的内部库包org.objectweb.asm它是一个 java 内部库,所以它必须在 tools.jar 中,但 build.properties 它已经导入了 java 的工具。 jar 和 aleady 应用插件 java 所以我不知道这是 build.properties(主要部分)allprojects {apply plugin: 'java'group 'com.nemosw.spigot'version '1.2.21'sourceCompatibility = 1.8targetCompatibility = 1.8compileJava.options.encoding = 'UTF-8'javadoc.options.encoding = 'UTF-8'repositories {    // junit    mavenCentral()    // nms spigot & mox    mavenLocal()}}project(':core') {processResources {    filesMatching('**/*.yml') {        expand project.properties    }}repositories {    maven { url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }    maven { url = 'https://oss.sonatype.org/content/repositories/snapshots/' }    flatDir { dirs 'libs' }}}}其他部分可以在这里找到: https: //github.com/nemosrc/tap您还需要修复一些依赖项并编译他的 mox 库(所有这些)https://github.com/nemosrc/mox-mathhttps://github.com/nemosrc/mox-toolshttps://github.com/nemosrc/mox-collectionshttps://github.com/nemosrc/mox-task以及由于库失败而导致的大量错误。C:\tap\core\src\main\java\com\nemosw\spigot\tap\event\ASMEntityEventExecutor.java:6: 错误:包 org.objectweb.asm 不存在 import org.objectweb.asm.ClassWriter; ^C:\tap\core\src\main\java\com\nemosw\spigot\tap\event\ASMEntityEventExecutor.java:7: 错误:包 org.objectweb.asm 不存在 import org.objectweb.asm.MethodVisitor; ^C:\tap\core\src\main\java\com\nemosw\spigot\tap\event\ASMEntityEventExecutor.java:8: 错误:包 org.objectweb.asm 不存在 import org.objectweb.asm.Type; ^C:\tap\core\src\main\java\com\nemosw\spigot\tap\event\ASMEntityEventExecutor.java:15: 错误:包 org.objectweb.asm 不存在导入静态 org.objectweb.asm.Opcodes。 *; ^C:\tap\core\src\main\java\com\nemosw\spigot\tap\event\ASMEventExecutor.java:9: 错误:包 org.objectweb.asm 不存在 import org.objectweb.asm.ClassWriter;
查看完整描述

4 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

您可以在 dependencies 块中添加依赖项 -

dependencies {
    compileOnly 'org.spigotmc:spigot-api:1.12.2-R0.1-SNAPSHOT'
    compileOnly files(Jvm.current().toolsJar)
    compile 'com.nemosw.mox:mox-collections:1.0'
    compile 'com.nemosw.mox:mox-task:1.0'
    compile 'com.nemosw.mox:mox-math:1.0.2'
    compile 'com.nemosw.mox:mox-tools:1.1'
    compile 'org.ow2.asm:asm:'7.1'
}

您可以从该站点找到更多依赖项 https://mvnrepository.com/


查看完整回答
反对 回复 2023-05-10
?
达令说

TA贡献1821条经验 获得超6个赞

你为什么会认为它是一个 Java 内部库?

org.objectweb.asm包是 ASM 库的一部分: https: //asm.ow2.io/

您可能希望将其添加到您的 Gradle 构建中:compile group: 'org.ow2.asm', name: 'asm', version: '7.1'


查看完整回答
反对 回复 2023-05-10
?
ITMISS

TA贡献1871条经验 获得超8个赞

对于某些内部 API,这是 javac 中的限制。

您可以将此属性与 javac 一起使用以使其工作 javac -XDignore.symbol.file=true

从 Java 9 开始,您可以使用 javac --add-exports java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED


查看完整回答
反对 回复 2023-05-10
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

使用 Java 9+?创建一个名为module-info.java
的文件

module com.example.nightmare { 
   requires org.objectweb.asm;
}

放在 jar 的根目录或者 'java/main/src/resources'

(您的努力量或结果可能会有所不同,并且可能需要更多要求)

它是供 JVM 组件使用的内部类,它可能不仅在版本之间有意想不到的变化,而且在补丁中没有计划,所以使用风险自负。推荐的方法从与 JVM 使用的 jar 分开的 jar 加载版本。我推测将其保留在“内部”会增加 OpenJdk 开发和前沿部署的稳定性。绝不建议使用此类内部组件。

当然,很多事情不建议我们做。享受!


查看完整回答
反对 回复 2023-05-10
  • 4 回答
  • 0 关注
  • 388 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信