Tag: openjdk

使用在openjre中需要Java Policy Files的加密

如果我想使用java和加密密钥长度超过128位,我必须使用Java策略文件。 如何使用openjre启动并运行这些应用程序? 我得到了相同的错误,我使用oracle jre没有策略文件,但我不能简单地使用Oracle策略文件? 或者我可以吗? 或者用openjdk帮助构建项目? 谢谢

OpenJDK实现System.arraycopy

在关于JVM基于char []实现字符串创建的方式的问题之后,我提到当char []被复制到新字符串的内部时不会发生迭代,因为System.arraycopy最终被调用,它使用诸如memcpy之类的函数在原生的,依赖于实现的级别( 原始问题 )复制所需的存储器。 我想亲自检查一下,所以我下载了Openjdk 7源代码并开始浏览它。 我在OpenJDK C ++源代码中找到了System.arraycopy的实现,在openjdx/hotspot/src/share/vm/oops/objArrayKlass.cpp : if (stype == bound || Klass::cast(stype)->is_subtype_of(bound)) { // elements are guaranteed to be subtypes, so no check necessary bs->write_ref_array_pre(dst, length); Copy::conjoint_oops_atomic(src, dst, length); } else { // slow case: need individual subtype checks 如果元素不需要类型检查(例如,原始数据类型数组的情况),则调用Copy :: conjoin_oops_atomic。 Copy::conjoint_oops_atomic函数位于’copy.hpp’中: // overloaded for UseCompressedOops static void conjoint_oops_atomic(narrowOop* […]

OpenJDK与Java HotspotVM

OpenJDK VM和Oracle Hotspot VM还有两种不同的JVM吗? 我似乎无法找到任何有关OpenJDK VM的官方文档。 即使在OpenJDK主页上也有一个开发HotSpot VM的HotSpot Group。 HotSpot组由参与HotSpot虚拟机的设计,实现和维护的开发人员组成 但是,如果我在我的Windows机器上检查java -version,它会打印出来 Java HotSpot(TM)64位服务器VM 但在我的Ubuntu VPS上 OpenJDK 64位服务器VM 如果这两个是不同的VM,它们之间的主要区别是什么? 他们有不同的运行时标志集吗?

使用贝塞尔曲线进行圆近似

我有2个关于贝塞尔曲线的问题,并使用它们来近似圆的部分。 给定单位圆弧(1,0) – >(cos(a),sin(a)),其中0 <a <pi / 2,它将导致该弧的良好近似,以找到贝塞尔曲线的控制点p1 ,p2通过求解要求B(1/3)=(cos(a / 3),sin(a / 3))和B(2/3)=(cos(2a / 3),sin(图2a / 3))。 (换句话说,要求贝塞尔曲线穿过弧中两个均匀间隔的点)。 如果我们有一个仿射变换A,它将圆弧转成椭圆弧,变换的控制点Ap0,Ap1,Ap2,Ap3是否定义了椭圆弧的良好贝塞尔近似? 当然,p0和p3是曲线的起点和终点:(1,0)和(cos(a),sin(a))。 谢谢

从open jdk切换到Sun jdk

我在/ usr / lib / jvm中有jdk1.7.0目录以及其他open-jdk版本。 我希望我的Ubuntu 12.04将此jdk(jdk1.7.0)视为其主要的jdk,即我不想使用open-jdks。 当我输入java -version或javac -version时,它返回的时间都是使用openjdk及其jre。 如何将其更改为jdk1.7.0?

OpenShift上的OpenJDK:“NoSuchAlgorithmException:EC AlgorithmParameters not available”

我遇到了java.security.NoSuchAlgorithmException: EC AlgorithmParameters not available OpenShift上java.security.NoSuchAlgorithmException: EC AlgorithmParameters not available Wildfly 8.2(OpenJDK 1.8.0_31)的java.security.NoSuchAlgorithmException: EC AlgorithmParameters not available (AmazonHttpClient抛出exception)。 看起来OpenJDK 1.8和ECC存在一个错误: https ://bugzilla.redhat.com/show_bug.cgi?id = 1167153 根据建议的解决方法,需要编辑jre/lib/security/java.security以禁用jdk.tls.disabledAlgorithms=EC,ECDHE,ECDH 。 或者删除jre/lib/ext/sunec.jar 不幸的是我无法在OpenShift上执行此操作(缺少权限)。 这里最好的解决方法是什么? 我可以选择切换到没有这个问题的Oracle JDK(在OpenShift上)吗? 更新 : 我删除了Sun java.security.Provider-s并添加了BouncyCastle: static { Security.removeProvider(“SunEC”); Security.removeProvider(“SUN”); Security.removeProvider(“SunJSSE”); // … Security.addProvider(new BouncyCastleProvider()); } 不幸的是,BouncyCastle 不是 JSSE提供者( 使用Bouncy Castle提供程序创建SSLContext实例 ), SSLContext.getInstance()因NoSuchAlgorithmException: TLS SSLContext not […]

为什么Instant不支持使用ChronoUnit.YEARS进行操作?

这对我来说意外: > Clock clock = Clock.systemUTC(); > Instant.now(clock).minus(3, ChronoUnit.DAYS); java.time.Instant res4 = 2016-10-04T00:57:20.840Z > Instant.now(clock).minus(3, ChronoUnit.YEARS); java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Years 作为一种解决方法,我必须这样做: > Instant.now(clock).atOffset(ZoneOffset.UTC).minus(3, ChronoUnit.YEARS).toInstant(); java.time.Instant res11 = 2013-10-07T01:02:56.361Z 我很好奇为什么Instant不支持YEARS。 开发人员是否放弃了它? (在我的实际代码中,我试图减去Period.ofYears(3)但引用的Instant方法是最后调用的方法)。

如何在OutOfMemoryError _after_上进行堆转储时重新启动JVM?

我知道-XX:+HeapDumpOnOutOfMemoryError JVM参数。 我也知道-XX:OnOutOfMemoryError=”cmd args;cmd args”并且kill -3 将请求堆转储。 问题:如何确保在OutOfMemoryError首先进行完全堆转储, 然后在转储完成后强制重启(或终止)? 是我最好的选择-XX:OnOutOfMemoryError=”kill -3 %p;sleep ;kill -9 %p” ?

OpenJDK的Java 7更新在哪里?

甲骨文已经发布了针对Java 7的更新2,而看起来OpenJDK仍然是去年夏天发布的原始版本147。 是否可以获得OpenJDK的更新? 似乎有一个OpenJDK项目仅用于更新( http://openjdk.java.net/projects/jdk7u/ ),它提到他们将在与Oracle同时发布更新,但我找不到任何东西。 谢谢 渣

JDK,JRE,Java:版本混乱!

虽然我还不是真正的Java开发人员,但我觉得我现在应该知道这一点,但我仍然很困惑。 我的问题有两个部分: 所谓的(如我所见) “Sun JDK”,OpenJDK和GCJ有什么区别? 在不同的时间,我已经看到了下面的每一个被抛出,使得理解哪些版本号实际适用于什么令人困惑。 有人可以帮我解决这个问题吗? Java 6 Java 1.6 JDK 6 JDK 1.6 JRE 1.6 JVM 11.0 注意:我确实理解JDK(Java Development Kit)和Java Runtime Environment之间的区别。 虽然我知道JVM是什么/做什么,但我并不完全清楚JRE和JVM之间的区别。