1.jrockit Դ??
2.各位能推荐一下jvm权威的书籍吗?
3.Java技术专题带你认识下Open JDK和Oracle/Sun JDK的关系「原理篇」
jrockit Դ??
在安装完Oracle Database g Release 2数据库,想试一下Oracle自带的SQL Developer工具,在操作系统菜单的所有程序中找到SQL Developer
结果却提示缺少快捷方式,没找到“SQLDEVELOPER.BAT”,
在Oracle的安装目录
D:\DataBaseInstall\Oralce_g_r2\product\.2.0\dbhome_1\sqldeveloper\sqldeveloper\bin下的确也没找到sqldeveloper.bat文件。网上很多人都说重新下载SQL Developer替换掉安装Oracle时自带的网站源码可商用那个
重新到Oracle官网下载SQL Developer
将下载下来的 sqldeveloper-3.2...-no-jre.zip解压到Oracle安装目录下
这时重新单击操作系统菜单中的“SQL Developer”,看到命令窗口闪一下就消失了。看了一下SQL Developer的“readme.html”文档知道了SQL Developer 3.2支持的Java版本至少要1.6.0_。
那就下载当前最新JDK安装
在欢迎窗口中单击“Next”:
设置JDK安装目录,单击“Next”:
这里问你是否需要安装示例或源代码,根据需要选择,这里我就不选了直接单击“Next”
这里是否安装JRE,选择“Yes”,单击“Next”:
设置JRE安装目录,单击“Next”:
安装过程
安装完毕,单击“Done”关闭
现在新的JDK安装完后,重新单击操作系统菜单中的“SQL Developer”,这时“SQL Developer”可以启动,但是至尊传奇源码报了如下的异常:
Exception initializing 'oracle.dbtools.raptor.plsql.PLSQLAddin' in extension 'Or
acle SQL Developer': java.lang.NoClassDefFoundError: com/sun/jdi/Bootstrap at
oracle.jdevimpl.debugger.jdi.DebugJDIConnector.getVersion(DebugJDICon nector.java:) at
oracle.jdevimpl.debugger.support.DebugFactory.<clinit>(DebugFactory.j ava:) at
oracle.dbtools.raptor.plsql.PLSQLAddin.initialize(PLSQLAddin.java:)
at
oracle.ideimpl.extension.AddinManagerImpl.initializeAddin(AddinManage rImpl.java:)
at
oracle.ideimpl.extension.AddinManagerImpl.initializeAddins(AddinManag erImpl.java:) at
oracle.ideimpl.extension.AddinManagerImpl.initProductAndUserAddins(Ad dinManagerImpl.java:) at
oracle.ide.IdeCore.initProductAndUserAddins(IdeCore.java:) at oracle.ide.IdeCore.startupImpl(IdeCore.java:) at oracle.ide.Ide.startup(Ide.java:) at
oracle.ideimpl.DefaultIdeStarter.startIde(DefaultIdeStarter.java:) at oracle.ideimpl.Main.start(Main.java:) at oracle.ideimpl.Main.main(Main.java:)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:)
at java.lang.reflect.Method.invoke(Method.java:) at oracle.ide.boot.PCLMain.callMain(PCLMain.java:) at oracle.ide.boot.PCLMain.main(PCLMain.java:)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodA
ccessorImpl. java:) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:) at java.lang.reflect.Method.invoke(Method.java:) at oracle.classloader.util.MainClass.invoke(MainClass.java:) at
oracle.ide.boot.IdeLauncher.bootClassLoadersAndMain(IdeLauncher.java: ) at oracle.ide.boot.IdeLauncher.launchImpl(IdeLauncher.java:) at oracle.ide.boot.IdeLauncher.launch(IdeLauncher.java:) at oracle.ide.boot.IdeLauncher.main(IdeLauncher.java:) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:) at java.lang.reflect.Method.invoke(Method.java:) at oracle.ide.boot.Launcher.invokeMain(Launcher.java:) at oracle.ide.boot.Launcher.launchImpl(Launcher.java:) at oracle.ide.boot.Launcher.launch(Launcher.java:) at oracle.ide.boot.Launcher.main(Launcher.java:)
看着异常就不爽啊,解决呗。运行命令行窗口查看是否设置了JDK系统环境变量,这里显然是没有设置JDK系统环境变量
设置系统环境变量
在桌面选中“计算机”右键选择“属性”,单击“高级系统设置”
在高级选项卡中单击“环境变量”:
在系统变量下单击“新建”,填入变量名“JAVA_HOME”,变量值为JDK的安装目录,我这里为“ D:\JAVAEEServiceInstall\Java\jrockit-jdk1.6.0_-R.2.5-4.1.0 ”,单击“确定”:
在系统变量中找到“Path”,单击“编辑”,unity mmorpg源码在变量值中加入“%JAVA_HOME%\bin”以“;”相隔,单击“确定”:
系统环境变量设置完成后,重新启动命令行窗口,检查是否成功。如下为设置成功
重新单击操作系统菜单中的“SQL Developer”,这时“SQL Developer”可以正常启动:
如果希望不出现“[WARN ][jrockit] MaxPermSize=M ignored: Not a valid option for JRockit”警告,那用记事本打开SQL Developer的bin目录下的“sqldeveloper.bat”文件,找到“-XX:MaxPermSize=M”直接删除。因为jrockit已经不需要-XX:MaxPermSize这样的源码爆破工具参数了。
各位能推荐一下jvm权威的书籍吗?
推荐JVM权威书籍如下:
初学者(8本):
1. 《深入理解Java虚拟机:JVM高级特性与实践(第3版)》
2. 《深入Java虚拟机(原书第2版)---SUN公司核心技术丛书》
3. 《实战JAVA虚拟机 JVM故障诊断与性能优化》
4. 《深入理解JVM & G1 GC》
5. 《Java虚拟机精讲》
6. 《自己动手写Java虚拟机》 - 张秀宏,使用Go实现的
7. 《自己动手写Python虚拟机》
8. 《深入浅出:Java虚拟机设计与实现》
进阶者(本):
1. 《揭秘Java虚拟机:JVM设计原理与实现》
2. 《虚拟机设计与实现:以JVM为例》
3. 《Java虚拟机规范-JavaSE8》
4. 《深入理解JVM字节码/Java核心技术系列》
5. 《解析Java虚拟机开发--权衡优化高效和安全的最优方案》
6. 《Java虚拟机基础教程》
7. 《深入解析Java虚拟机HotSpot》
8. 《深入理解Android:Java虚拟机ART (Chinese Edition)》
9. 《JRockit权威指南:深入理解JVM》
. 《深入Java虚拟机:JVM G1 GC的算法与实现》
. 《垃圾回收算法与实现》
. 《HotSpot实战》
深入者(5本):
1. 《虚拟机:系统与进程的通用平台》
2. 《JVM G1源码分析和调优》
3. 《深入剖析Java虚拟机 : 源码剖析与实例详解(基础卷)》
4. 《垃圾回收算法手册-自动内存管理的艺术》
5. 《GraalVM与Java静态编译:原理与应用林子熠》
这些书籍涵盖了JVM学习的各个方面,从初学者到深入者,适合不同层次的学习者。希望对你有所帮助。
Java技术专题带你认识下Open JDK和Oracle/Sun JDK的关系「原理篇」
本文将探讨Open JDK与Oracle/Sun JDK之间的关系,它们之间的差异主要体现在授权协议、功能完整性和商业支持上。
OpenJDK,sns app源码源于Sun在年的开源举措,是JDK的开源版本,采用GPL V2协议,强调源代码的可复用性。Oracle JDK则作为商业实现,包含一些OpenJDK中没有的闭源功能,例如JRockit的Flight Recorder。在JDK7版本中,两者代码基础相似,性能和功能基本一致。
Oracle JDK采用SCSL协议,允许商业使用,而OpenJDK的GPL协议限制了在商业环境中的应用。OpenJDK只包含精简的JDK组件,不包含如Rhino、Java DB等扩展,用户可自由添加。部分源代码因产权问题未能完全开源,如SNMP相关代码,IcedTea为此提供了替代方案。
OpenJDK不包含Deployment功能,如浏览器插件和Java Web Start,而IcedTea项目最初是为了补全OpenJDK的缺失部分。从代码完整性和商业支持的角度来看,Oracle JDK在OpenJDK的基础上添加了价值增值,但这些增值功能可能在实际使用中并不常用。
总的来说,OpenJDK和Oracle JDK在技术上高度相关,但商业支持和功能完整性有所不同。OpenJDK作为开源项目,更倾向于提供核心Java实现,而Oracle JDK则在基础上增加了商业特性。对于开发者来说,选择哪种取决于具体需求和使用环境。