可以在源代码中指定JDK版本吗?

时间:2009-07-17 11:09:58

标签: ide java

我正在两台具有不同JDK版本的不同计算机(相同源代码)上开发Java应用程序。有没有办法在源代码中指定JDK版本,以便IDE(例如NetBeans)在两台机器上以相同的方式编译源代码?

我的一台电脑有JDK5,另一台有JDK6。在5下,jdbc-interface不支持6中可用的某些方法(例如NClob,XML ...),因此在6机器上编译的代码在5机器上编译的代码不起作用。现在,在使用5台机器时,我必须注释掉6件事。

7 个答案:

答案 0 :(得分:7)

不在源代码中。您希望将IDE设置为使用Java 5 JDK进行编译。您可以通过在Java 6 JDK旁边安装Java 5 JDK并指定它(取决于IDE)来实现此目的。

或者,如果您正在使用Ant,则可以在javac任务中指定Java版本。

答案 1 :(得分:4)

不要过度复杂化问题...在所有计算机上安装相同版本的JDK,并将IDE设置为使用该版本。忽略其他版本。

答案 2 :(得分:2)

我知道这已经得到了解答但是如果你不能更新1.5到1.6那么你需要做的就是设置使用1.6编译为1.5的“源兼容性”的ide

无需在运行1.6的计算机上安装1.5,因为JDK是向后兼容的。

eclipse中的设置是首选项> Java>编译器

答案 3 :(得分:1)

您将始终必须回退并对最低版本的JDK进行编码 - 在您的情况下,您无法使用JDK版本6中引入的功能。

正如Brian所说,如果您使用配置为使用相同JDK的IDE(在您的情况下为第5版),那么它可能是最安全的。

您可以使用version参数切换到特定的运行时版本,但这可能对您没有帮助。

另请注意,针对版本6编译代码并针对版本5运行将导致运行时错误,因为不兼容的类版本,正如您所说,尝试使用旧版本中不存在的JDBC方法。

答案 4 :(得分:0)

在NetBeans中,您可以右键单击项目属性,然后选择源版本,如果您有jdk 1.6,则可以使用以前的版本构建它

答案 5 :(得分:0)

您需要做的是指定与两个JDK(< = 1.5)支持的内容的源兼容性。例如,如果您正在构建的应用程序可能部署到仅安装了Java 1.3的环境中,则低于1.5可能是有意义的。

我知道这在Eclipse中是可行的,但不幸的是,我不熟悉NetBeans,但我相信它也是可能的。

如果有任何帮助,如果您只是从控制台运行javac(假设您想要1.5作为基准级别),请按以下步骤操作:

javac -source 1.5 ...

如果你使用Maven(我理解NetBeans有很好的支持),这也可以作为Maven POM中的插件配置。这就是你如何做到的(来自http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html):

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.4</source>
          <target>1.4</target>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>

正如布莱恩阿格纽指出的那样,也有可能在Ant中出现。

答案 6 :(得分:0)

问题是:你需要支持JVM 1.5吗?如果是这样,您的代码应该完全兼容1.5(似乎不是)。如果没有,只需将所有机器中的JVM(如已建议的那样)更新为相同的JVM版本(并且不要忘记版本次要:1.6.0_03!= 1.6.0_14)。