使用JDK8创建与IntelliJ与Java 7兼容的Jar

国王

我在普通台式机上使用JDK8,并且有一个单独的linux盒,试图在其上运行Java程序。

我遇到的问题是linux机器正在运行jdk7,因此计算机基本上已经运行了JRE7。我的问题是,是否有可能在JDK8中创建一个与Java 7兼容的jar文件?

我正在使用IntelliJ进行编译。我尝试在1.7中进行编译,但最终尝试这样做时却给出了错误。我在这里编译:

在此处输入图片说明

在1.8中,可以很好地进行编译,但是当我尝试在1.7中进行编译时,它将无法工作。

我知道简短的答案是将linux更新为JRE8。但是我很好奇,有没有办法使它向后兼容?还是另一种答案,就是简单地在桌面上安装JDK7,以便使用JRE7在Linux机器上运行它?

谐音

使用JDK 8构建的Java程序只能在运行JRE 8(或更高版本)的计算机上运行。

在尝试在本地Linux机器上编译类(使用JDK 8)并将其部署到运行JRE 7的远程服务器时,我发现了这一点。这些类根本行不通(就像您发现的那样)。

如果要在Linux上使用JRE 8,建议使用中的oracle-java8-installer软件包webupd8team可以在此处找到安装说明(假设基于Debian的发行版)

如果要编译为JDK 7,仅安装JDK 8并选择编译1.7还不够。您需要安装JDK 7并重新启动项目才能使用JDK 7。


您必须记住的是,JRE / JDK版本之间的区别不仅在于开发人员可以使用的其他功能(例如Lambda函数),而且还改进了JRE本身(效率,垃圾回收等)。
举一个极端的例子:如果您编写的代码仅使用JDK 1功能,但使用JDK 8对其进行了编译,则该代码将无法在运行JRE 1的计算机上运行,​​因为考虑到Java类是在考虑JRE 8的情况下进行编译的。

不过请注意,如果您使用的是Java代码,则仅使用JDK 7或6等中的功能,那么您可能会认为,使用允许与更多计算机兼容的最低JDK进行编译是一种好习惯。好吧……您将具有这种兼容性,但是要使用效率低下,过时的,可能易受攻击的编译类(尽管有点极端,但是您明白我的意思)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Groovy詹金斯自动化的Maven和Java JDK8安装?

如何使用JDK8和JDK11阅读的Java注释的价值?

使用Java的ServiceLoader构建与jdk8使用> = java9

如何在jdk8和jdk9上使用使用Unsafe的java8代码?

Java三元运算符与<JDK8兼容性中的if / else

JDK8无法与JDK8一起使用(WS客户端)

我如何使该Java 7兼容?

Grails 1.3.7 / Java 7兼容性

JDK 7类文件向后兼容JDK 6

GWT与JDK 7的新功能兼容

Generic中的jdk7和jdk8有什么区别?

Oracle 19c与jdk7的兼容性

为什么Kotlin JDK8在类路径上也包含Kotlin JDK7?

UIAlertView / UIAlertController iOS 7和iOS 8兼容性

自JDK 7使用List对象以来,Java JDK 8 IndexedPropertyDescriptor发生了变化

使用JDK 7与使用符合编译器兼容级别1.7的JDK 8有什么区别?

使用JDK8 Lambda的FizzBuzz

Java技术之间的Jar版本兼容性矩阵?

部署在Tomcat(java 7)上的Rest Webservice(java 8)的兼容性问题

JDK 6和JDK8在Java集合上的区别

是否存在可与Java 7兼容的Azure Service Bus版本?

7zip与git archive创建的tar格式不兼容

针对“ Java 8” JDK编写的程序是否将与“ Java 7” JRE兼容?

JDK8中java.util.HashSet中未使用的方法

代码在jdk7中工作而不在jdk8中工作

创建订阅时,“ CKSubscriptionTypeRecordZone订阅与订阅选项7不兼容”

如何为硒测试创建兼容的JAR文件?

在运行gradle 6,7,8时将路径设置为jdk8是什么意思?

用launch4j和jdk8包装的.exe需要很长时间才能启动。相反,使用jdk7几乎可以立即开始

TOP 榜单

  1. 1

    来自Microsoft Office加载项taskpane.js的MySQL驱动程序模块的空引用

  2. 2

    使用AWS Cognito和React的仅限Facebook / Google的登录名(无用户名/密码)

  3. 3

    创建Windows Phone 8应用并将其连接到数据库的最佳方法(最好是SQL Server)

  4. 4

    为什么Java中的System.out.println()打印到控制台?

  5. 5

    卷曲函数无法解析来自bash中变量的代理

  6. 6

    是什么在Android的consumer-rules.pro和proguard-rules.pro之间的区别?

  7. 7

    设置与Apache POI Excel表散点图标记图标的颜色

  8. 8

    将Qt Pyside2与asyncio await语法一起使用?

  9. 9

    崇高的文字+蟒蛇的蟒蛇

  10. 10

    任务':app:minifyReleaseWithR8'.java.lang.NullPointerException的执行失败(无错误消息)

  11. 11

    OpenJDK的和AdoptOpenJDK的区别

  12. 12

    大型数据集缓存到Spark内存中时,“超出了GC开销限制”(通过sparklyr和RStudio)

  13. 13

    “执行测试CMAKE_HAVE_LIBC_PTHREAD”失败实际上是什么意思?

  14. 14

    使用Core 2.2中的Identity,如何在关闭浏览器15分钟后保持会话活动?

  15. 15

    React中的ForwardRefExoticComponent和ForwardRefRenderFunction有什么区别?

  16. 16

    猫鼬查找结果,然后将字段替换为findOne

  17. 17

    如何降级Google Colab的Torch版本

  18. 18

    Keras提前停止回调错误,val_loss指标不可用

  19. 19

    如何避免VSCode中的“导入路径不能以.ts扩展名结尾”错误?

  20. 20

    Nuxt.JS:如何在页面中获取路由URL参数

  21. 21

    是否有为什么会AccessibilityManager.sInstance导致内存泄漏的一个原因?

热门标签

归档