当前位置: 首页 > 知识库问答 >
问题:

javac源和目标选项

尉迟明贤
2023-03-14

我已经看到了JDK发行版可以运行`javac-source1.6-target1.5`的编译选项。我理解来源和目标的单独选项。我不明白为什么源版本比目标版本高。为旧目标编译代码是有意义的。但是在这种情况下,为什么我们不使用我们希望能够运行的最古老目标的-source

共有1个答案

王炜
2023-03-14
  • 源代码:编译源代码所需的版本。
  • 目标:您希望支持的最旧的JRE版本。

请确保还设置bootclasspath以确保您的程序可以在较旧的VM上工作。

javac文档中:

C\:>javac -source 1.6 -target 1.6 -bootclasspath C:\jdk1.6.0\lib\rt.jar -extdirs "" OldCode.java
C:\>javac -source 1.6 OldCode.java
warning: [options] bootstrap class path not set in conjunction with -source 1.6
 类似资料:
  • 我有一个java项目的Apache ant构建文件,其中包含一个javac命令来编译我的源代码。这个项目有一些特殊的约束,它是由小的子项目组成的。这些子项目中的大多数具有以下文件夹结构: src和service都是源文件夹。A.java导入/service文件夹中的一些类,例如B.java。在eclipse中,一切正常,A.java导入B.java时没有任何错误或问题,所以我假设classpath

  • 问题内容: 我正在尝试使用JNI和JDK9。我有一个看起来像这样的类: 我编译该类,然后使用生成头文件。 发出时,我得到以下警告: 我知道下一个主要的JDK版本还需要很长时间,但是我认为我现在将开始习惯这个新选项。 所以,在尝试(以及其它类似的变化,等等),我不断收到此错误: 我一直无法在线找到任何帮助,可能是因为此功能是相对较新的,并且在手册页中找不到关于此新选项的任何信息。 还有其他人尝试吗?

  • 我最近下载了与NetBeans捆绑在一起的JDK1.8.0.006。然后我发现我一直在用Java1.7开发的JavaFx项目不会用Java1.8编译,所以我把JDK降到了1.7。但我还是无法让它运行/编译。我得到了这个错误: 我真的被困住了,非常感谢您的帮助。

  • 我已经搜索了所有关于为什么我们应该有不同于目标的来源,但不一致的答案: 如果JDK向下兼容,为什么在1.7上编译时需要将目标设置为1.8? 将源设置为高于目标将不起作用,例如错误: 源版本8需要目标版本1.8 同样来自Maven: 仅仅设置target选项并不能保证代码在具有指定版本的JRE上实际运行。陷阱在于无意中使用了只存在于后来的JRE中的API,这会导致代码在运行时出现链接错误 有人能举个

  • 更新:请参阅此处的分辨率。 谢谢大家的帮助! 我在尝试用Ant编译项目时遇到了一个错误,它声称“[javac]javac:invalid target release:7”,并导致构建失败。 我正在Mac OSX Mavericks机器上运行javac版本1.7.040。Ant版本:Apache Ant(TM)1.8.3版,2012年2月26日编译 只有在尝试使用Ant编译时,才会出现问题。在命令

  • 我正在从ModelMapper到MapStruct的转换过程中,到目前为止一切都很顺利,除了在列表上排序和筛选的情况,如果我有一个从域对象到实体的映射,例如: 从一个api中,我想在contactAddressLine1上进行过滤或排序,然后我想查找源代码(或反向映射时的目标代码),以便将其添加到动态jpq或sql查询中。 有没有办法用MapSTRt做到这一点? 使用ModelMapper,我可以