【问题标题】:How to Run Jar on java 7 compiled in java 8 or higher version [duplicate]如何在以 java 8 或更高版本编译的 java 7 上运行 Jar [重复]
【发布时间】:2019-04-12 09:12:46
【问题描述】:

我使用 java 8 创建了一个 Windows 应用程序。但是我的客户在他的机器上使用 java 7 并且无法在机器上升级 java。

所以当我在用 java 8 编译的 java7 上运行 jar 时,它会给出错误,所以我可以转换 jar 兼容低版本java

【问题讨论】:

  • 用java 7编译你的jar
  • 我没有java7,在使用java8时我也可以安装java 7
  • 是的,你可以安装多个java版本。
  • 为 java 7 编译。为 javac 使用标志

标签: java java-8 jar java-7


【解决方案1】:

您不能更改已编译 jar 的 Java 版本。您手头有 2 个选项。

  1. 使用 Java-7 编译源代码。

  2. 使用 Java-8 编译源代码,但当目标 vm 版本为 java-7 时使用以下命令。

javac "Your java classes" -source 1.8 -target 1.7

【讨论】:

  • 事后更改类文件格式版本实际上是非常可行的(除非您使用了新的 Java 8 API 或像 lambdas 这样的语言功能)。
  • 如果不使用任何 jdk8 功能怎么办,编译 1.8 和目标 1.8。它会起作用吗?
【解决方案2】:

Java 7 与 Java 8 向前兼容。Java 8 可以编译为在 Java 7 VM 上运行(使用 -source 7 -target 7),但您不能使用任何较新的 API。 只需使用 JAVA 7 编译就可以了,只要确保您没有使用 java 8 的新功能(如 lamda)就可以了

【讨论】:

  • 如果不使用任何 jdk8 功能怎么办,编译 1.8 和目标 1.8。它会起作用吗?
  • @Gaurav 确定它会工作,我没有看到问题.. 你的意思是你写代码就像你写 java 7 但编译到 java 8?我认为它会工作..!不是 100% 肯定,但认为它会起作用。
【解决方案3】:

你不能。你需要用Java 7编译。你可以运行多个Java版本并选择应该使用哪个版本来编译:Multiple Java versions running concurrently under Windows

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 2011-03-20
  • 2017-01-07
  • 2014-08-28
  • 2020-12-03
相关资源
最近更新 更多