【问题标题】:What is the best way to deal with the project having multiple jdk compiled dependencies?处理具有多个 jdk 编译依赖项的项目的最佳方法是什么?
【发布时间】:2015-09-17 06:12:02
【问题描述】:

我有一个基于ant 的项目,它是使用Java 5 构建的,它是一个旧项目。

现在我需要再次处理它以对其进行一些更改。我有另一个项目jar,它是用Java 7 构建的,这个jar 需要作为dependency 添加到旧项目中。

据我了解,这里有两种可能:

  1. 使用Java 7 构建旧项目
  2. 使用Java 5 构建新项目

第二个选项几乎是不可能的,因为自 Java 5 以来有很多类结构更改,我几乎必须从头开始重写代码。

第一个选项似乎可行,但我需要注意什么才能使用Java 7 构建一个Java 5 项目,因为我们知道class structural 发生了变化。

注意:我已经尝试使用 Java 7 构建这个旧项目,它说

cannot access java.lang.Object bad class file: class file has wrong version 51.0, should be 49.0

【问题讨论】:

  • 应该没有任何问题。只需使用 Java 7 编译,看看是否有任何编译错误。
  • 你刚试过用7编译吗?
  • 编译时出现编译错误,上面写着bad class version , should be 49.0
  • 版本 49 来自 java 5,因此您使用的是 java 5 而不是 java 7。
  • @FranMontero,你是对的,这是我得到的:Detected Java version: 1.5 in: /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre 但我不确定为什么会有 java 5 ?我尝试通过设置 javac target=1.7 使用 java 7 构建它

标签: java ant java-7 jdk1.5


【解决方案1】:

我遇到了类似的问题,我发现我安装了不同的 java 版本。由于我需要两者,我制作了一个脚本来动态更改 JAVA_HOME 路径。 假设你在一台 Windows 机器上,首先你需要设置环境变量:

  • 顶部列表中没有与 Java 相关的条目(“用户变量”)
  • JAVA_HOME = C: 在下方列表中(“系统变量”)
  • 在“路径”下将C:\ProgramData\Oracle\Java\javapathC:\Program Files (x86)\Common Files\Oracle\Java\javapath替换为%JAVA_HOME%\bin
  • 另外添加C:\Program Files\Java\scripts(假设您想将脚本放在那里)以使用快捷方式更改正在运行的Java

假设你想要一个 Java7 的快捷方式,你应该创建一个 java7.bat 文件并像这样编辑

@echo off
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_79
set Path=%JAVA_HOME%\bin;%Path%
echo Java 7 activated.

注意将 java 路径与您机器上的实际路径相匹配。 根据需要制作尽可能多的 .bat 文件(例如 java5.bat、java7.bat),只需在 cmd 中键入 java7 即可更改版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 2011-05-23
    • 2012-11-15
    • 2016-06-19
    • 2011-04-19
    • 1970-01-01
    相关资源
    最近更新 更多