Tag: openjdk

如何从jdk覆盖类?

我正在尝试从open jdk更改一些类,所以我创建了与open jdk类相同的包结构,并且我正在使用netbeans更改类。 当我正在构建项目时,如果在覆盖的类中出现问题,我会收到错误。 如果成功构建我的项目,似乎应用程序不会考虑我的类的更改,而是使用open jdk类。 知道如何使用我的课程而不是openjdk的课程? 例: 如果我在我的项目中创建类sun.net.www.protocol.https.HttpsURLConnectionImpl并在其中进行一些更改,我构建项目,但是当我运行他的应用程序时,我的更改不会出现,就像openjdk中的原始类一样使用,而不是我的class级。

可能的Java编译器错误! 程序不能与某些编译器一起编译

首先,一点背景(如果不感兴趣,可以跳过一点)。 我很生气,很困惑! 这应该是一个非常简单的用例,事实上我的代码已经用Eclipse JDT编译器编译得很好,所以直到现在我一直在配置Maven以确保这样做。 尽管它不能用Oracle JDK和OpenJDK编译,但是我一直在困扰我,因为我认为它可能实际上是我的代码的问题,所以我再次研究它。 我想也许这个bug是在JDT编译器中允许它编译的,而不是Oracle JDK和OpenJDK因为不允许它,我也用它来测试这两个。 有问题的原始代码要复杂得多,所以我很难看到问题出在哪里,事实上,我很惊讶地发现在不编译的情况下可以减少这个问题的程度。 Eclipse JDT编译器或Oracle JDK和OpenJDK都有一个非常重要的(imho)错误。 TL; DR 这是相关代码的相当小的表示。 (Anything的类型绑定可以被任何接口替换,编译器行为不会改变): public class Bug<X extends Property & Anything> { } interface Property extends PropertyConst { @Override public S get(); } interface PropertyConst { public C get(); } interface Anything { } 总而言之,我认为这应该编译得很好,但Oracle JDK 7&8和OpenJDK 7不同意。 它使用Eclipse Juno为我编译。 当使用这些编译器中的任何一个编译时,上面的代码给出类似于以下错误的东西,但是对于JDT编译器可以正常工作: Bug.java:3: error: […]

如何在Jdk9 / java-9中解决module-info.java编译错误

我试图使用jdk-9在代码下运行,但在使用命令编译时遇到问题 命令 javac -d mods .\module-info.java com\nirav\modi\Test.java 错误 .\module-info.java:1: error: class, interface, or enum expected module module1 { } ^ 1 error module-info.java module module1 { } Test.java package com.nirav.modi; class Test { public static void main(String args[]){ System.out.println(“Hello Modular…”); } } 包结构如下 module1\module-info.java module1\com\nirav\modi\Test.java JDK版本 java version “9-ea” Java(TM) SE Runtime Environment (build 9-ea+153) […]

如何更新OpenJDK的时区信息?

如何更新OpenJDK的时区信息? Oracle推出了tzupdater,但这受到了许可证的约束,因此我不想使用它。 我正在寻找一个开源替代方案,这将允许我只更新时区信息而不是整个JRE。

如何在OpenJDK(Android 7+)中反序列化对象,该对象已在Apache Harmony(Android * -6)中序列化?

我的应用程序使用http://prevayler.org/进行持久化,捎带Java对象序列化。 升级到Android 7.0(Nougat)后,用户无法打开他们的数据,因为反序列化不再起作用: java.io.StreamCorruptedException: invalid type code: 71 at java.io.ObjectInputStream.readString(ObjectInputStream.java:1647) at java.io.ObjectInputStream.readEnum(ObjectInputStream.java:1737) … at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373) at org.prevayler.foundation.serialization.JavaSerializer.readObject(JavaSerializer.java:34) … at org.prevayler.PrevaylerFactory.snapshotManager(PrevaylerFactory.java:368) at org.prevayler.PrevaylerFactory.create(PrevaylerFactory.java:316) at com.tennismath.prevayler.PrevaylerServiceImpl.getSystemPrevayler(PrevaylerServiceImpl.java:51) 在反序列化枚举时,OpenJDK例程读取意外的字节值“71”并抛出exception,从源代码可以看出: http : //grepcode.com/file/repository.grepcode.com/java/根/ JDK /的openjdk / 8u40-B25 / JAVA / IO / ObjectInputStream.java#ObjectInputStream.readString%28boolean%29 我有以下想法: 设置迁移服务器,该服务器将运行Harmony和OpenJDK进程,这些进程将执行数据迁移。 破解二进制格式并修复枚举序列化(假设它是唯一的一个问题,我怀疑) 使用AspectJ破解反序列化 所有这些选择似乎都是矫枉过正或不满意。 在我开始攻击二进制文件之前,也许任何人都可以更好地了解如何使用新的运行时对旧数据进行反序列化? 谢谢。

用于IntelliJ IDEA的OpenJDK或Sun Java

可能重复: 在Ubuntu 11.10上安装IDEA 我已经使用OpenJDK运行IntelliJ IDEA但是在终端启动IntelliJ IDEA时它向我显示: $ ./idea.sh OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b24~pre2-1) OpenJDK Server VM (build 20.0-b12, mixed mode) WARNING: You are launching IDE using OpenJDK Java runtime. THIS IS STRICTLY UNSUPPORTED DUE TO KNOWN PERFORMANCE AND GRAPHICS PROBLEMS! NOTE: If you have both Oracle (Sun) JDK and OpenJDK installed please validate either […]

为什么Java对象中存在内部碎片,即使每个字段都是4字节对齐的?

介绍: 我使用JOL(Java对象布局)工具来分析Java对象的内部和外部碎片以用于研究目的。 在这样做的时候,我偶然发现了以下内容: x@pc:~/Util$ java -jar jol-cli-0.9-full.jar internals sun.reflect.DelegatingClassLoader # WARNING: Unable to attach Serviceability Agent. You can try again with escalated privileges. Two options: a) use -Djol.tryWithSudo=true to try with sudo; b) echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope # Running 64-bit HotSpot VM. # Using compressed oop with 3-bit shift. # Using compressed klass […]

尝试使用Rhino,getEngineByName(“JavaScript”)在OpenJDK 7中返回null

当我运行下面的代码时,当我使用OpenJDK 7( java-7-openjdk-i386 )时, engine变量被设置为null 。 import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class TestRhino { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName(“JavaScript”); try { System.out.println(engine.eval(“1+1”)); } catch (ScriptException e) { // TODO Auto-generated catch block e.printStackTrace(); […]

完整的JVM选项列表

除了官方文档,我发现只有这篇文章 。 但它相当陈旧-XX完整(仅提供-XX选项)。 例如,我找不到-XX:AutoBoxCacheMax选项。 如果存在完整列表,可以在哪里找到?

OpenJDK JVM与Oracle Java SE JVM相同吗?

据我所知,Oracle Java SE包含不属于OpenJDK的闭源扩展和工具,但是Oracle Java SE JVM与OpenJDK JVM相同,或者Oracle在将其作为Java SE JVM发布之前是否对OpenJDK JVM进行了更改? 更新1:我从JDK7更新项目中找到了一些信息: http : //openjdk.java.net/projects/jdk7u/qanda.html 7 Update Project是否会收到Oracle的安全修复程序? 是。 与OpenJDK 6一样,安全修复程序首先保密,并在被推送到公共森林之前应用于私有森林,作为影响JDK发布列车的修复程序的一般同步发布的一部分。 此外,他们不会通过公共代码审查和回复审批流程,他们在项目问题跟踪器中的相应问题将不会公开显示。