当前位置:首页 » 编程软件 » 编译jdk8

编译jdk8

发布时间: 2023-05-11 16:09:50

㈠ 运行环境jre版本和jar包编译版本不一致导致:Unsupported major.minor version 52.0

我在本地使用 Intellij Idea 打包了一个 spark 的程序 jar 包,放到linux集群上运行,报错信息是: Unsupported major.minor version 52.0

本机系统 -> windows10 开发工具 -> Intellij Idea 构建工具 -> maven

集群系统 -> Linux jre -> java(TM) SE Runtime Environment (build 1.7.0_80-b15)`

根据报错 log 可以断定的是由于我本地编译打包所使用的 jdk 版本和 linux 集群的 jre 版本不一致导致的。stanford parser 和 jdk 版本对应关系为:

可以推断出是由于我打包编译时所使用的 jdk 版本是 jdk8,而集群的 jre 是7,才导致的问题。

maven 项目会用 maven-compiler-plugin 默认的 jdk 版本来进行编译,如果不指明版本就容易出现版本不匹配的问题,可能导致编译不通过的问题。解决办法:在 pom 文件中配置 maven-compiler-plugin 插件。

方式一:

方式二:

如竖首果使用 scala 编写 spark 的程序,在编译打包时候要注意 scala 的版本号和 jdk 版本的对应关系,同时也要考虑集群上 jre 的版本。比如我的集群上所使用的 jre 的版本号为 7,那么本机打包编译的 jdk 版本必须旅搜为 7 ,那么 scala 版本必须为 2.12 版本以下。

Intellij Idea 设置“开发”运拆纤历行时所用的 jdk 版本的几个地方:

如果上图中 Intellij Idea 的开发运行 jdk 版本配置错误,在开发运行编译的时候会报: Error:java: 无效的源发行版: xx

㈡ 我为什么要自己编译openjdk8以及那些坑

比如说,泰山OFFICE使用JAVA开发,自然要使用JDK。而JDK本身也有BUG,解决又不及时,只能自己动手解决了。相当于定制。
如果要编译JDK,建议参考本人博客,应该是全网最详细的,很多问题是全网首发(就是吾第一个发表博文公开解决办法的)。

㈢ openjdk-8-jdk-headless 什么版本

OpenJDK8是JDK的开放源码版本,以GPL(General Public License,通用性公开许可证)协议的形式放出。因为授权协议的原因,Sun公司实现的JDK的一部分源码因为产权的问题无法开放OpenJDK使用。因此相比于JDK,OpenJDK的源码只包含了最精简的JDK。

openjdk是jdk的开放原始码版本,以GPL协议的形式放出。在JDK7的时候,openjdk已经成为jdk7的主干开发,sun jdk7是在openjdk7的基础上发布的,其大部分原始码都相同。

只有少部分原始码被替换掉。使用JRL(JavaResearch License,Java研究授权协议)发布。

至于openjdk6则更是有其复杂的一面,首先是openjdk6是jdk7的一个分支,并且尽量去除Java SE7的新特性,使其尽量的符合Java6的标准。

(3)编译jdk8扩展阅读:

DK和OpenJDK的区别,可以归纳为以下几点:

1、授权协议的不同

openjdk采用GPL V2协议放出,而JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用。

而JRL只允许个人研究使用。OpenJDK不包含Deployment(部署)功能。

部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在Openjdk中是找不到的。

2、OpenJDK源代码不完整

这个很容易想到,在采用GPL协议的Openjdk中,sun jdk的一部分源代码因为产权的问题无法开放openjdk使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。

因此这些不能开放的源代码将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。

而Icedtea则为这些不完整的部分开发了相同功能的源代码(OpenJDK6),促使OpenJDK更加完整。

3、部分源代码用开源代码替换

由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。

4、openjdk只包含最精简的JDK

OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。

5、不能使用Java商标

这个很容易理解,在安装openjdk的机器上,输入“java -version”显示的是openjdk,但是如果是使用Icedtea补丁的openjdk,显示的是java。(未验证)

总之,在Java体系中,还是有很多不自由的成分,源代码的开发不够彻底,希望Oracle能够让JCP更自由开放一些,这也是所有Java社区所希望的。



㈣ 如何编译java

用命令提示符编译java程序的步骤:


1.先新建文本文档,输入自己的java程序。

这里我写一个简单的java程序,来做示范。

import java.util.*;

public class HelloDate{

public static void main(String[] args)

{

System.out.println("Hello,it's:");

System.out.println(new Date());

}

}

经验总结:运行一个java程序的大概的流程是:

书写源代码------>编译------->运行---->结束。




注意事项:

1.在输入的时候一定要注意区分大小写。

2.操作之前要保证自己的电脑配置了java的运行环境。

㈤ centos7 编译 openjdk8, make all 报错

你是要安装java环境吧

㈥ 我为什么要自己编译openjdk8以及那些坑

(1)/etc/profileexportJAVA_HOME=/usr/java/jdk1.7.0_67-cloudera/exportPATH=$PATH:$JAVA_HOME/binexportJRE_HOME="$JAVA_HOME/jre"exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar修改完成后,使用source/etc/profile命令进行更新;(2)下面这几步比较重要,因为在许多linux系统中都预装了openjdk,所以即使上面进行了这些设置,系统默认的还不是我们要设置的内容;如果要真正使用我们自己的jdk,还需要一下步骤:sudoupdate-alternatives--install/usr/bin/javajava/usr/java/jdk1.7.0_67-cloudera/bin/java300sudoupdate-alternatives--install/usr/bin/javacjavac/usr/java/jdk1.7.0_67-cloudera/bin/javac300(这里的300只是标识一下,没什么意义,只是下一步要用到)(3)大功告成,使用java-version命令来查看我们的java环境变量,显示如下内容:javaversion"1.7.0_05"Java(TM)SERuntimeEnvironment(build1.7.0_05-b06)JavaHotSpot(TM)ServerVM(build23.1-b03,mixedmode)*对于更新一个/usr/bin/xxx命令指向一个新的路径可以用sudoupdate-alternatives--configxxx

㈦ jdk8编译的程序能否在低版本java上运行

如果用了jdk8的新特性的话 一般情况下就必须要高版本的或者当前版本的了
当然 如果涉及的特性在程序里面只是一些小功能或许也能跑

㈧ jdk环境配置 win8 我只配置了path 而没有配置classpath为什么 还能编译执行HelloWorld.java

像java命令,Windows会现在当前目录找,如果没找到这个程序,就去环境变量path那项里的目录里去找。如果你不配置,就只能进到bin目录里使用,很麻烦,所以要配置一下。以便在哪里都能用。classpath也一样的道理,只不过不是程序,而是为了找类。

所以你不配置也能用,可能就是因为系统找到了这个类的缘故。
希望 采纳。

㈨ jdk8编译在jdk11运行

在使用JDK 11编译JDK 8项目时,可能会遇到一些兼容性问题。以下是一些可能的解决方案:

设置编译器版吵歼本:JDK 11默认使用的是Java SE 11编译器,可以通过设置-source和-target参数来使用JDK 8的编译器。例如,使用以下命令编译Java文件:

plaintext
Copy code
javac -source 1.8 -target 1.8 MyJavaFile.java

这将使用JDK 8的编译器编译Java文件。
2. 使用工具:可以使用一些工具来将JDK 8的项目转换为JDK 11兼容的项目。例如,可以使用Apache Maven或Gradle等构建工具来管理项目依赖和编译设置。这些工具可以自动检测并解决兼容性问题。
3. 升级项目:如果可能的话,可以考虑将JDK 8的项目升级到JDK 11。这需要对项目进行修改,以使用新的Java SE 11 API和功能。在升级项目之前,建议备份项目代码和相关设置。
请注意,以上方法仅供参考,型含具体解决方案可能因情况而异。在编译JDK 8项目时,建议使用JDK 8编升租冲译器,以避免兼容性问题。

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:535
微博数据库设计 发布:2025-07-05 15:30:55 浏览:32
linux485 发布:2025-07-05 14:38:28 浏览:310
php用的软件 发布:2025-07-05 14:06:22 浏览:760
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:437
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:734
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:249
java的开发流程 发布:2025-07-05 12:45:11 浏览:696
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:288
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:838