Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

本地编译arthas项目报错 #2333

Closed
spilledyear opened this issue Nov 4, 2022 · 15 comments
Closed

本地编译arthas项目报错 #2333

spilledyear opened this issue Nov 4, 2022 · 15 comments

Comments

@spilledyear
Copy link

spilledyear commented Nov 4, 2022

我已经在 issues 里搜索,没有重复的issue。

环境信息

本地java环境 1.8
image

问题

在IDEA中 执行 mvn clean package -DskipTests -P full 报错

[ERROR] /Users/admin/workspace/arthas/core/src/main/java/com/taobao/arthas/core/command/basic1000/JFRCommand.java:[14,1] 程序包jdk.jfr不存在

image

image

@hengyunabc
Copy link
Collaborator

使用最新版本的 jdk8 或者使用 jdk11 。

@spilledyear
Copy link
Author

使用最新版本的 jdk8 或者使用 jdk11 。

我将jdk更新到 JDK 8u351 还是报一样的错,提示 jfr.jdk.xx 找不到;

如果将jdk更新到11, 则报错 javah 命令不存在

@spilledyear
Copy link
Author

spilledyear commented Nov 4, 2022

JfrCommadn 是3.6.5 开始支持的,这个应该是依赖 java8+

@hengyunabc
Copy link
Collaborator

用高版本 jdk8是肯定可以的,github action 三个平台都用jdk8编译: https://github.com/alibaba/arthas/blob/master/.github/workflows/build-vmtool.yaml

@leopardrota
Copy link

leopardrota commented Nov 6, 2022

用高版本 jdk8是肯定可以的,github action 三个平台都用jdk8编译: https://github.com/alibaba/arthas/blob/master/.github/workflows/build-vmtool.yaml

path: arthas-vmtool/target/lib*

path: arthas-vmtool/target/lib*

path: arthas-vmtool/target/*.dll

这些是不是只针对arthas-vmtool编译?那确实没问题,但是编译不了arthas-core。

@leopardrota
Copy link

使用最新版本的 jdk8 或者使用 jdk11 。

我将jdk更新到 JDK 8u351 还是报一样的错,提示 jfr.jdk.xx 找不到;

如果将jdk更新到11, 则报错 javah 命令不存在

是的,我也遇到过。虽然官方坚持It is recommended to use JDK8 to compile, and you will encounter problems when using a higher version.,但是jdk8确实不行,因为jdk.jfr是jdk9引入的。这就导致源码构建不了,而且还是源码中核心部分arthas-core。

javah.exe是从jdk10开始移除的。

所以用jdk9才行。

@hengyunabc
Copy link
Collaborator

这些是不是只针对arthas-vmtool编译?那确实没问题,但是编译不了arthas-core。

。。是整个工程执行./mvnw package。 后面的path只是收集编译生成的文件。

@leopardrota
Copy link

那希望官方能提供下需要jdk8具体哪个版本或更高版本才行,Oracle官网jdk8最高版本8u351已经搞不定了。

@MissingNone
Copy link
Contributor

可以使用amazon corretto jdk8 352版本
https://github.com/corretto/corretto-8/releases
打包编译使用项目中的as-package.sh,如果中间有什么模块出问题暂时打包不了。将脚本中的36行修改,先排除部分模块的打包。
image
@spilledyear

@spilledyear
Copy link
Author

spilledyear commented Nov 7, 2022

@MissingNone
多谢。通过 amazon corretto jdk8 352 打包成功了。

"$DIR/mvnw" clean package -pl "!site" -pl "!web-ui" -Dmaven.test.skip=true -DskipTests=true -Dmaven.javadoc.skip=true -f $DIR/pom.xml
|| exit_on_err 1 "package arthas failed."

但如果用 oracle jdk8最新版本打包确实是不行的。我将分支切到 3.6.4 ,通过 oracle jdk8 也可以正常打包, 3.6.5 开始引入了 JFRCommand 导致打包失败。如果直接使用 oracle jdk11, 则会提示 javah命令不存在。

这一块内容是否可以优化一下呢?或者说 编译环境为java11 时,如何能够打包成功呢

@hengyunabc
Copy link
Collaborator

hengyunabc commented Nov 7, 2022

更新说明了: 221ddd7

@spilledyear
Copy link
Author

更新说明了: 221ddd7

大佬,能加下你联系方式吗? 有些问题想请教一下

@hengyunabc
Copy link
Collaborator

更新说明了: 221ddd7

大佬,能加下你联系方式吗? 有些问题想请教一下

加arthas钉钉群,或者qq群,或者在公众号里加。

@spilledyear spilledyear changed the title 本地编辑arthas项目报错 本地编译arthas项目报错 Nov 9, 2022
@spilledyear
Copy link
Author

更新说明了: 221ddd7

这时候其实对 编译时和运行时 JDK版本都有要求吧

@xhyflowcloud
Copy link

xhyflowcloud commented Jun 21, 2023

更新说明了: 221ddd7

用zulu可以
image

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

No branches or pull requests

5 participants