【问题标题】:Java version issue in linux .sh execution?linux .sh执行中的Java版本问题?
【发布时间】:2015-09-07 22:04:24
【问题描述】:

我有如下的 .sh 文件。

export JAVA_HOME=/usr/jdk/latest
export PATH=$JAVA_HOME/bin:$PATH
java -Dlogback.configurationFile=./conf/logback.xml  -cp CLASSPATH:Client.jar com.test.main.Client 
exit

如果我运行脚本,我会收到以下错误消息。

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/test/main/Client : Unsupported major.minor version 52.0

由于 java 版本问题,我阅读了一些文档并告诉他们正在发生这种情况。我检查了我的本地机器版本和 linux 服务器版本。两者都是一样的。 我正在使用 gradle 2.4 构建应用程序并将 sourceCompatibility 和 targetCompatibility 设置为 1.8。

sourceCompatibility = 1.8
targetCompatibility = 1.8

本地机java版本。

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) Client VM (build 25.45-b02, mixed mode)

Linux服务器java版本

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

如果我只是编辑 .sh 文件(添加空间)并运行它就可以正常工作。

能否请人帮忙解决这个问题?

【问题讨论】:

  • 截图非常小。也发布你的 gradle 配置。
  • /usr/jdk/latest/bin/java -version 的输出是什么?
  • 可以肯定的是,这些都是/usr/jdk/latest/bin/java -version,而不仅仅是java -version
  • 所以在编辑文件后运行,可能是你的 sh EOL Conversion windows 和 linux 之间的问题。我不确定。
  • 您使用的是哪个 Linux 发行版?

标签: java linux shell


【解决方案1】:

在为 8 编译时,您使用的是旧的 java 版本(8 之前的版本)。

下载 jdk8,安装它并将您的 JAVA_HOME(在您的脚本中)指向新安装的 jdk。

【讨论】:

  • 他已经安装了Java 8,他只需点一下即可使用。
  • @pmverma 你确定是jdk 不是jre
猜你喜欢
  • 2019-04-04
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 2018-01-15
相关资源
最近更新 更多