多年来,我们一直使用Java来构建我们的企业软件(非嵌入式),并将JRE重新分配给我们的客户.最近,Oracle代表在提供服务的贸易展上与我们联系.在与我们的工程师打了几次电话之后,他们开始声称我们需要为Java支付费用,因为我们的软件不是"通用".
那么,有几个问题:
提前致谢,
标记
我莫名其妙地理解之间的差异Oracle JDK和Open JDK.
但我找不到使用的理由Open JDK.
因为Oracle JDK已经拥有了所需的一切,有时甚至更快Open JDK.
有人在哪些情况下使用Open JDK?
它只是针对合法性问题吗?
如果是,那么问题是什么?
那是因为我一直在使用我开发的所有项目Oracle JDK
在尝试根据传递给HTTP服务器的URL参数动态生成JNLP文件时,我注意到了一件奇怪的事情.如果我的HTML代码中有这样的东西,它可以工作:
<embed type="application/x-java-applet;" launchjnlp="dummy.jnlp"/>
Run Code Online (Sandbox Code Playgroud)
另一方面,如果我%在launchjnlp属性中有一个字符,插件根本不会做任何事情:
<embed type="application/x-java-applet;" launchjnlp="dummy%3f.jnlp"/>
Run Code Online (Sandbox Code Playgroud)
没有错误消息,没有默认的Java启动画面,没有,它默默地失败.(甚至没有尝试检索JNLP文件.)
这是某种安全功能吗?如果是的话,它应该防范什么?
或者它可能是一个直截了当的错误?
更新:使用%实体而不是%符号也不起作用.
更新2:我尝试但未能找到有关该launchjnlp属性的确切语义的任何文档,但整个标记由deployJava.launchWebStartApplication(jnlp)生成,这应该是从浏览器启动Web Start应用程序的"官方"方式.
更新3:只是对此非常清楚:上面的例子只是:一个例子.您可以使用绝对任何 URL(相对,绝对,file://,http://,您为其命名),任何 URL编码的字符,甚至无效的转义序列来观察所描述的行为(尽管在这种情况下它更多或不太合理),实际JNLP文件的存在与否是无关紧要的,因为我们甚至没有达到插件试图加载JNLP文件的程度.
它们都在我的ubuntu机器上的/ usr/lib/jvm/..文件中.有人可以解释这4个文件之间的差异以及为什么名为java1.8.0_91的文件不被视为JDK?我在为android studio找到JDK时遇到了这些文件.
我很想知道Java如何测试它的API.让我们说,我对ConcurrentHashMap类感兴趣,这个类会有任何单元测试吗?如果是这样,它是否可供公众使用?
我们计划将我们的项目从Oracle JDK迁移到OpenJDK。我对此有一些疑问。
经过分析后,我发现OpenJDK will have a feature release every 6 months which is only supported until the next feature release.It's essentially a continuous stream of releases targeted to developers.现在的问题是迁移到OpenJDK是否是一个好主意。因为如果上述说法正确,则我们需要每6个月升级一次应用程序中的OpenJDK
进行此迁移需要进行哪些基本更改。当我说基本变更时,我的意思是我需要非常高级地理解。我知道的一件事是Oracle JDK和Open JDK具有不同的jar许可证。因此,是否需要像从Oracle JDK迁移到OpenJDK所提到的那样,用OpenJDK jar替换所有Oracle JDK jar ?
目前,我们正在使用:
感谢你的帮助。
谢谢
1]任何人都可以指向文档或详细解释"Ext Root Scanning"在G1 GC中是如何工作的,特别是对于JNI句柄吗?(如果可能请特定于Java 7)
2]奖励:我们期望G1 gc的openJDK代码与Hotspot有什么不同?如果我们可以期望它是相同的,那么请指出用于G1 GC ext root扫描的openJDK代码的相关部分吗?
谢谢
执行时抛出以下错误sudo apt-get install oracle-java8-installer:
Location: http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz?AuthParam=1508340360_7be4aa21e145dd26bda475add7c27ada [following]
--2017-10-18 08:24:00-- http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz?AuthParam=1508340360_7be4aa21e145dd26bda475add7c27ada
Reusing existing connection to 2.2.0.1:8080.
Proxy request sent, awaiting response... 404 Not Found
Run Code Online (Sandbox Code Playgroud)
暂时的解决方法是:
cd /var/lib/dpkg/info
sudo sed -i 's|JAVA_VERSION=8u144|JAVA_VERSION=8u152|' oracle-java8-installer.*
sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/|' oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ="e8a341ce566f32c3d06f6d0f0eeea9a0f434f538d22af949ae58bc86f2eeaae4"|SHA256SUM_TGZ="218b3b340c3f6d05d940b817d0270dfe0cfd657a636bad074dcabe0c111961bf"|' oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_144|J_DIR=jdk1.8.0_152|' oracle-java8-installer.*
Run Code Online (Sandbox Code Playgroud) 我在Stack Overflow上阅读了一些有关JVM的文章,并想下载Hotspot JVM的二进制副本,但是我无法在http://www.java.net上找到它。
除此之外,Hotspot JVM和Oracle的 JVM有什么区别?
Oracle JVM是否适合生产网站?
AdoptOpenJDK 项目似乎提供了与 HotSpot JVM 捆绑在一起的 JDK(作为一种可能的选择)。但是它和 OpenJDK 有什么关系呢?
我理解OpenJDK 一词可能含糊不清。这里我指的是(引自维基百科)
Java 平台标准版 (Java SE) 的免费开源实现。
我认为它已经包含一个 JVM。
人们为什么使用Azul的OpenJDK的Zulu 9.0.0.15版本而不是从oracle.com下载的JDK?我在《有效的Java》一书中遇到了这个OpenJDK,并且之前没有尝试过这个开放的jdk。这是因为Oracle使JDK商业化了吗?