关于openjdkjava的信息
今天给各位分享openjdkjava的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、openjdk启动参数不起效
- 2、openjdk与jdk区别
- 3、openjdk和jdk性能区别 有哪些区别
- 4、linux安装了openjdk,怎么安装java
- 5、如何配置openjdk的 java home
- 6、openjdk和jdk的区别
openjdk启动参数不起效
前言
记录一下在客户提供的生产环境,部署Tomcat时因为OpenJDK文件出现的问题
环境
Windows 版本: Windows Server 2008 R2 Enterprise
Tomcat版本:Apache Tomcat 9.0.38 (windows-x64,zip格式文件)
Spring Boot 版本:2.3.2.RELEASE (Tomcat问题与项目无关,仅供参考)
OPEN JDK:Alibaba_Dragonwell_8.4.4_Experimental
问题重现
配置OpenJDK
按往常部署项目的流程一样,先配置环境变量JAVA_HOM和PATH,确保可以正确使用。

配置TOMCAT(命令行窗口)
接着在部署Tomcat,并且将项目war包放到webapp下,运行bin\startup.bat,查看系统启动是否异常。

配置TOMCAT(Windows 服务)
OK,命令行成功运行后,将Tomcat 服务进行设置,以达到Windows启动时自启动项目的需求。
使用cmd对service.bat程序执行以下命令:
service.bat install 服务名称
可以看到服务成功创建了,日志输出了包含JDK、catalinna等环境变量的信息。

系统services.msc窗口启动服务
Windows 运行 启动services.msc,找到刚刚“Apache Tomcat 9.0 刚创建的服务名称”这个服务,执行右键-启动,测试下就可以下班了!

but……


这是个什么鬼?难道打开方式不对?
通过日志排查问题
经过社会多年的毒打,出现错误,第一时间就想到了查看日志!
打开Tomcat程序文件夹下的logs文件夹,找到当天以“cammons-daemon”开头的日志文件,可以看见下方的错误信息:

这时候我的内心是一万只草泥马奔过,【拒绝访问】是什么鬼?还是OpenJDK?
排查问题
OK,顺着文件夹路径看看

可以看见Windows的文件夹路径是绿色的,这类文件夹一般是被Windows做了加密保护处理。
等等,加密?那拒绝访问的问题就解释通了!
右键文件夹,属性-常规-高级,取消“加密内容以便保护数据”选项的勾选状态,并点击“将更改应用于此文件夹、子文件夹和文件”。


经过短暂的等待,文件夹名称已经由绿色变为黑色。

回到services.msc服务窗口,右键服务-启动看看。

至此,Tomcat 因OpenJDK文件夹被拒绝访问,导致服务不能正常启动的问题就解决了!
总结
1. Tomcat 服务出现不能正常启动的问题,应第一时间查看Tomcat logs文件夹下,当天以“cammons-daemon”开头的日志文件进行排查。
2. 如果OpenJDK或其他Tomcat需要引用的文件、文件夹为加密状态,在命令行或服务启动时可以会出现“拒绝访问”的情况,需及时调整文件夹类型或其他解决方案。
openjdk与jdk区别
OracleJDK 和 OpenJDK 之间的一些主要区别如下:
1. 发布周期
Open Java 每六个月发布一次,而 Oracle java 每三年发布一次。用户能够获得 oracle 对其版本的长期支持。而Open JDK 为任何版本提供更改,直到下一个版本发布。
2. 许可证
Oracle JDK 依据 Oracle 二进制代码许可协议许可证,而OpenJDK 使用 GNU 通用公共许可证 (GNU GPL) 第 2 版,但有一个链接例外。
3. 整体输出
这两个 Java 平台没有真正的技术差异,因为 Oracle JDK 的构建过程是基于 OpenJDK 的。就平台的整体性能而言,Oracle Java 在响应能力和 JVM 性能方面相对优于 OpenJDK。
openjdk和jdk性能区别 有哪些区别
关于JDK和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部份的代码。而Icedtea则为这些不完整的部分开发了相同功能的源代码(OpenJDK6),促使OpenJDK更加完整。
3、部分源代码用开源代码替换。由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。
4、openjdk只包含最精简的JDK。OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。
5、不能使用Java商标。这个很容易理解,在安装openjdk的机器上,输入“java -version”显示的是openjdk,但是如果是使用Icedtea补丁的openjdk,显示的是java。(未验证)。
linux安装了openjdk,怎么安装java
你还需要再安装一个openjdk-devel(CentOS和Fedora上的名字)或者openjdk-dev(Ubuntu上的名字)软件包,安装了以后Linux上就有java命令了,当然版本要对应,也就是如果你安装的是OpenJDK 1.7,openjdk-devel或openjdk-dev也要是1.7版本的才行。
如何配置openjdk的 java home
运行Java应用的时候,提示无法找到JAVA_HOME,查询java
-version
[jifeng@localhost
bin]$
java
-version
java
version
"1.7.0_55"
OpenJDK
Runtime
Environment
(rhel-2.4.7.1.el6_5-x86_64
u55-b13)
OpenJDK
64-Bit
Server
VM
(build
24.51-b03,
mixed
mode)
Centos
6.5自带OpenJDK的环境,但是需要手动配置JAVA_HOME的环境变量。
可是openJDK的安装目录跟我们常见的Sun
JDK存放位置目录不同。
openJDK安装好后的目录位于:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.55.x86_64
其他版本都在/usr/lib/jvm
下,包括jre和jdk。
可以在“java-1.7.0-openjdk-1.7.0.55.x86_64”(某些情况下是再下一层子目录
jre
的下面有
bin
和
lib
两个目录)目录下看到“bin”,在bin下可以找到javac文件,说明这就是JDK了!
此时只需要在终端中打开环境变量文件
vim
/etc/profile或vim
/root/.bashrc,(保存命令按ESC,然后输入“:w”即可保存,然后”:q”退出vi)填写相应的目录即可:
export
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.55.x86_64
export
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export
PATH=$PATH:$JAVA_HOME/bin
这样我们就设置好了JDK,再输入source
/etc/profile
或source
/root/.bashrc就可以生效了.
openjdk和jdk的区别
使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢?
历史上的原因是,openjdk是jdk的开放原始码版本,以GPL协议的形式放出。在JDK7的时候,openjdk已经成为jdk7的主干开发,sun jdk7是在openjdk7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。使用JRL(JavaResearch License,Java研究授权协议)发布。
至于openjdk6则更是有其复杂的一面,首先是openjdk6是jdk7的一个分支,并且尽量去除Java SE7的新特性,使其尽量的符合Java6的标准。
关于JDK和OpenJDK的区别,可以归纳为以下几点:
授权协议的不同:
openjdk采用GPL V2协议放出,而JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。
OpenJDK不包含Deployment(部署)功能:
部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在Openjdk中是找不到的。
OpenJDK源代码不完整:
这个很容易想到,在采用GPL协议的Openjdk中,sun jdk的一部分源代码因为产权的问题无法开放openjdk使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。因此这些不能开放的源代码将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。而Icedtea则为这些不完整的部分开发了相同功能的源代码(OpenJDK6),促使OpenJDK更加完整。
部分源代码用开源代码替换:
由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。
openjdk只包含最精简的JDK:
OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。
不能使用Java商标:
这个很容易理解,在安装openjdk的机器上,输入“java -version”显示的是openjdk,但是如果是使用Icedtea补丁的openjdk,显示的是java。(未验证)
总之,在Java体系中,还是有很多不自由的成分,源代码的开发不够彻底,希望Oracle能够让JCP更自由开放一些,这也是所有Java社区所希望的。
openjdkjava的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、openjdkjava的信息别忘了在本站进行查找喔。
发布于:2022-12-19,除非注明,否则均为
原创文章,转载请注明出处。