运行obdumper 提示Neither the JAVA_HOME nor the JRE_HOME environment variable is defined (Oracle JDK 1.8.0_3xx+)

【 使用环境 】测试环境
【 obdumper 】
【 dumper-4.3.4 】
【问题描述】
我的服务器是arm64位架构,安装的统信uos V20 1060a版本,系统已经配置了Oracle jdk1.8.0_333(不是open jdk),安装了oceanbase的数据库导出工具ob-loader-dumper-4.3.4-RELEASE,在执行导出命令后,
系统老是提示如下:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined (Oracle JDK 1.8.0_3xx) At least one of these environment variable is needed to run this program

可是我已经配置了jdk,并在/etc/profile配置了环境变量而且执行了 source /etc/profile 执行 java -version 也已经输出了相关的jdk版本等信息,请问是哪里有问题,系统已经重启过了,问题依旧,哪位大神给指点一下。

java -version
java version “1.8.0_333”
Java™ SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot™ 64-Bit Server VM (build 25.333-b02, mixed mode)

./obdumper -version
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined (Oracle JDK 1.8.0_3xx+)
At least one of these environment variable is needed to run this program

1 个赞

用户环境变量设置了么
echo $JAVA_HOME 看下

没有问题

cat ~/.bash_profile

export JAVA_HOME=/use/local/java
export PATH=$PATH:$JAVA_HOME/bin

环境变量是这样配置的吗

理论上正常设置就可以了。 不行你obdump脚本里写死JAVA_HOME :joy:

1 个赞

执行一下
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
就可以了,非常感谢。
但是执行命令又遇到了新的提示:

./obdumper -version
Error: VM option ‘UseG1GC’ is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

请问一下这个选项,应该放在obdumper的具体哪个位置?

非常感谢

JAVA_OPTS="$JAVA_OPTS -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC"

查看版本是./obdumper --version


在下方添加:
JAVA_OPTS="$JAVA_OPTS -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC"

或者按照官方文档
https://www.oceanbase.com/docs/community-obloaderdumper-cn-10000000002037958
的要求添加:
JAVA_OPTS="$JAVA_OPTS -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -Xnoclassgc -XX:+DisableExplicitGC"

还是报同样的提示:
Error: VM option ‘UseG1GC’ is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

感觉和你加的位置有关系,适当往前挪一下?需要加在 java 命令执行前。

cat obdumper|grep “UseG1GC” 把这一行修改成GC_OPTS="-XX:+UnlockExperimentalVMOptions"试下

1 个赞

按照您的方法配置以后,可以了,感谢大神的指点。。。。。

问题已经解决,非常感谢各位高手的指点和帮助,再次感谢。