首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sourcegraph的scip-java索引java 17项目

使用sourcegraph的scip-java索引java 17项目
EN

Stack Overflow用户
提问于 2022-06-23 12:45:20
回答 1查看 265关注 0票数 2

我遵循的方法是:https://sourcegraph.github.io/scip-java/docs/getting-started.html

在我正在运行的项目的根目录中: docker -v $(pwd):/home/gradle sourcegraph/scip:最新的scip-java索引-构建-工具=gradle

但是,在运行此命令时,我会得到以下错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.IllegalAccessError: class com.sourcegraph.semanticdb_javac.SemanticdbPlugin (in unnamed module @0x1794d431) cannot access class com.sun.tools.javac.api.BasicJavacTask (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.api to unnamed module @0x1794d431

在入门指南中,它说Java 17需要自定义附加导出(https://sourcegraph.github.io/scip-java/docs/getting-started.html#java)。

对于Java 17和更新版本,需要以下JVM选项:

代码语言:javascript
复制
--add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED

我尝试过各种方法来添加这些选项,但是没有能够正确地完成(下面是我尝试过的一些事情和相应的错误)

代码语言:javascript
复制
docker run -e JAVA_OPTS="--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED" -v $(pwd):/home/gradle sourcegraph/scip-java:latest scip-java index --build-tool=gradle

使用JVM版本'temurin:17‘无法识别的选项:--添加-导出错误:无法创建Java虚拟机。错误:发生致命异常。程序将退出。无法识别的选项:--添加导出错误:无法创建Java虚拟机。错误:发生致命异常。程序将退出。

代码语言:javascript
复制
docker run -e JAVA_OPTS="jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED" -v $(pwd):/home/gradle sourcegraph/scip-java:latest scip-java index --build-tool=gradle

使用JVM版本'temurin:17‘错误:无法找到或加载主类jdk.compiler.com.sun.tools.javac.api=ALL-UNNAMED错误:无法找到或加载主类jdk.compiler.com.sun.tools.javac.api=ALL-UNNAMED

我对Java编程没有非常基本的经验,目前,我的主要目标是对存储库进行索引,并测试Sourcegraph精确的代码智能工具。(我正在尝试索引:https://github.com/spring-projects/spring-framework)

如何添加这些JVM选项?

编辑:

我尝试使用Holdger的方式(从评论中),但仍然得到相同的错误。

代码语言:javascript
复制
docker run -e JDK_JAVA_OPTIONS="--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED" -v $(pwd):/home/gradle sourcegraph/scip-java:latest scip-java index --build-tool=gradle

我得到的错误消息是(它只是任务失败的部分):

注意:选中的jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED:--在线程"main“中添加-导出java.lang.IllegalAccessError异常: com.sourcegraph.semanticdb_javac.SemanticdbPlugin类(在未命名模块@0x1794d431中)无法访问类com.sun.tools.javac.api.BasicJavacTask (在模块jdk.compiler中),因为在com.sourcegraph.semanticdb_javac.SemanticdbPlugin.init(SemanticdbPlugin.java:上,模块jdk.compiler没有将com.sun.tools.javac.api导出到未命名模块@0x1794d431。19)在jdk.compiler/com.sun.tools.javac.api.BasicJavacTask.initPlugin(BasicJavacTask.java:255) at jdk.compiler/com.sun.tools.javac.api.BasicJavacTask.initPlugins(BasicJavacTask.java:229) at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:292) at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176) at jdk.compiler/com.sun.tools.javac.Main.compile(Mainjdk.compiler/com.sun.tools.javac.Main.main(Main.java:50) ( .java:64)

EN

回答 1

Stack Overflow用户

发布于 2022-08-25 15:54:03

我留下了一条评论,但没有得到回应。希望这个能起作用。

这应该用这个PR:https://github.com/sourcegraph/scip-java/pull/464来修正

试着重新运行

代码语言:javascript
复制
$ docker run -v $(pwd):/home/gradle sourcegraph/scip-java:latest scip-java index --build-tool=gradle
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72730404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档