标签: openjdk-11

具有大量内存的机器上的 OpenJDK MaxRAMPercentage

在具有 60GB 内存(或更多)的机器上运行 OpenJDK 11 时,MaxRAMPercentage只允许我分配最多 30GB 左右的内存 。

这正常工作:

>~# java   -XX:MaxRAMPercentage=10 -XshowSettings:vm -version
VM settings:
    Max. Heap Size (Estimated): 5.90G
    Using VM: OpenJDK 64-Bit Server VM

openjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+11-post-Debian-1bpo91)
OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Debian-1bpo91, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

但是当百分比应该产生超过 30G 的堆大小时,我得到:

>~# java   -XX:MaxRAMPercentage=75 -XshowSettings:vm -version
VM settings:
    Max. Heap Size (Estimated): 29.97G
    Using VM: OpenJDK 64-Bit Server VM

openjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+11-post-Debian-1bpo91)
OpenJDK 64-Bit …
Run Code Online (Sandbox Code Playgroud)

java openjdk-11

3
推荐指数
1
解决办法
1700
查看次数

获取错误:缺少 JavaFX 运行时组件,需要在打开可执行 jar 时运行此应用程序

我已经构建executable jar使用NetBeans IDE 11.0但是当我打开 jar 使用时:

hemlata@hemlata-pc:~/NetBeansProjects/Sizing/dist$ java -jar Sizing.jar 
Run Code Online (Sandbox Code Playgroud)

我越来越

Error: JavaFX runtime components are missing, and are required to run this application
Run Code Online (Sandbox Code Playgroud)

我使用的是OpenJDK 11OpenJFX 11Debian 10

我已经添加modulesvm option

--module-path /usr/lib/jvm/openjfx11/lib/ --add-modules javafx.controls,javafx.fxml  
Run Code Online (Sandbox Code Playgroud)

但这不是问题。

那么如何配置JavaFX runtime components缺少的呢?

java javafx openjfx debian-buster openjdk-11

3
推荐指数
1
解决办法
6225
查看次数

openjdk11:不支持的CipherSuite异常

我的应用程序正在使用OpenJDK 11,但失败,但出现以下异常:

Caused by: java.lang.IllegalArgumentException: Unsupported CipherSuite: SSL_RSA_WITH_AES_256_CBC_SHA256
        at java.base/sun.security.ssl.CipherSuite.validValuesOf(CipherSuite.java:916)
        at java.base/sun.security.ssl.SSLSocketImpl.setEnabledCipherSuites(SSLSocketImpl.java:302)
        at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.makeSocketSecure(RemoteTCPConnection.java:2084)
Run Code Online (Sandbox Code Playgroud)

我不共享任何代码,因为我认为问题不存在。我需要以某种方式解决此异常。

是否可以将JRE配置为支持此特定CipherSuite?

java java-11 openjdk-11

2
推荐指数
1
解决办法
272
查看次数

OpenJDK 11 错误“无法初始化加密机制”

我有一个用 openJDK (Amazon Correto 11) 和 openJFX 编写的应用程序。

当我在本地运行应用程序时 - 一切正常。但是当我从网络共享执行应用程序时出现异常:

java.lang.ExceptionInInitializerError
    at java.base/javax.crypto.JceSecurityManager.<clinit>(JceSecurityManager.java:65)
    at java.base/javax.crypto.Cipher.getConfiguredPermission(Cipher.java:2624)
    at java.base/javax.crypto.Cipher.getMaxAllowedKeyLength(Cipher.java:2646)
    at java.base/sun.security.ssl.SSLCipher.isUnlimited(SSLCipher.java:540)
    at java.base/sun.security.ssl.SSLCipher.<init>(SSLCipher.java:472)
    at java.base/sun.security.ssl.SSLCipher.<clinit>(SSLCipher.java:174)
    at java.base/sun.security.ssl.CipherSuite.<clinit>(CipherSuite.java:67)
    at java.base/sun.security.ssl.SSLContextImpl.getApplicableSupportedCipherSuites(SSLContextImpl.java:348)
    at java.base/sun.security.ssl.SSLContextImpl$AbstractTLSContext.<clinit>(SSLContextImpl.java:579)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:315)
    at java.base/java.security.Provider$Service.getImplClass(Provider.java:1848)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1824)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:164)
    at java.base/javax.net.ssl.SSLContext.getInstance(SSLContext.java:168)
    at org.apache.http.ssl.SSLContexts.createDefault(SSLContexts.java:51)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.getSocketFactory(SSLConnectionSocketFactory.java:194)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.getDefaultRegistry(PoolingHttpClientConnectionManager.java:115)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:122)
    at com.mashape.unirest.http.options.Options.refresh(Options.java:72)
    at com.mashape.unirest.http.options.Options.<clinit>(Options.java:46)
    at com.mashape.unirest.http.HttpClientHelper.prepareRequest(HttpClientHelper.java:151)
    at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:131)
    at com.mashape.unirest.request.BaseRequest.asString(BaseRequest.java:56)
    at myapp.util.MyTaxNumberValidator$3.run(MyTaxNumberValidator.java:185)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanism
    at java.base/javax.crypto.JceSecurity.<clinit>(JceSecurity.java:120)
    ... 27 more …
Run Code Online (Sandbox Code Playgroud)

java jce amazon-web-services openjdk-11

2
推荐指数
1
解决办法
5604
查看次数

尽管已安装,但未找到 Ubuntu 18.04 Java 命令

我最初在 Ubuntu 18.04 上安装了 default-jdk 和 default-jre。

尝试为朋友托管 Minecraft 服务器,但出现此处发现的错误

我跟着评注的建议遵循这个建议重新安装,而不是11版以上版本,Java版本8这里是幸福

sudo rm -r /usr/lib/jvm/java-11-oracle
Run Code Online (Sandbox Code Playgroud)

但作为一个错误,我删除了该文件夹中的所有文件,只留下了两个目录

  1. java-11-openjdk-amd64
  2. java-8-openjdk-amd64

从那以后我尝试使用重新安装java sudo apt-get install default-jdk ; sudo apt-get install default-jre并且它们安装得很好,但是以 root 或用户身份运行 java -version 返回:

找不到命令“java”,但可以使用以下命令安装:

  1. sudo apt install default-jre
  2. sudo apt 安装 openjdk-11-jre-headless
  3. sudo apt 安装 openjdk-8-jre-headless

我已经在 askubuntu、digitalocean 和 stackoverflow 上搜索了一些答案,但找不到任何可以解决此问题的方法。我也问过我的室友,他是一位经验丰富的计算机科学专业的,过去曾广泛使用过ubuntu,他也没有找到解决办法。有没有人遇到过这个问题?

我感谢任何和所有的回应

java ubuntu-18.04 openjdk-11 openjdk-8

2
推荐指数
1
解决办法
7837
查看次数

proguard:无法读取 [C:\Program Files\AdoptOpenJDK\jdk-11.0.6.10-hotspot\lib\rt.jar]

我正在构建一个桌面应用程序。我使用 ProGuard 并进行以下配置:

@proguard_jmods.cfg
#-dontshrink
-dontoptimize
#-dontobfuscate


-repackageclasses ''
-renamesourcefileattribute SourceFile
-keepattributes *Annotation*,Signature,Annotation,InnerClasses,EnclosingMethod,SourceFile,LineNumberTable
-adaptresourcefilenames
-dontnote
-dontwarn com.ctc.wstx.**,com.github.**,com.jolbox.bonecp.**,com.mchange.v2.**,com.sun.istack.**,com.sun.tools.**,com.healthmarketscience.**,com.healthmarketscience.**,org.codehaus.**,org.iq80.snappy.**,com.sun.xml.**,com.thoughtworks.xstream.**,de.l3s.boilerpipe.**,javax.activation.**,javax.transaction.**,net.sf.ehcache.**,opennlp.tools.util.**,org.apache.cxf.**,org.apache.log4j.**,org.apache.poi.**,org.apache.sis.**,org.apache.**,org.dom4j.**,org.codehaus.plexus.**,javax.enterprise.**,org.glassfish.**,org.jdesktop.**,org.quartz.**,com.sun.org.**,javax.imageio.metadata.**,javax.xml.**,javax.jws.**,org.w3c.dom.**,org.xml.sax.**,au.com.bytecode.**,com.fasterxml.jackson.**,com.google.common.**,com.google.gson.**,com.googlecode.mp4parser.**,com.itextpdf.**,com.mchange.v1.**,com.microsoft.schemas.**,com.strobel.assembler.**,com.strobel.compilerservices.**,examples.RCallerScriptEngineExample1.**,examples.RCallerScriptEngineExample2.**,examples.RCallerScriptEngineExample2.**,examples.RCallerScriptEngineExample3.**,javassist.util.HotSwapAgent.**,javassist.util.HotSwapper.**,javax.rmi.CORBA.**,javax.rmi.CORBA.**,javax.rmi.PortableRemoteObject.**,org.bouncycastle.**,org.cyberneko.**,org.eclipse.jetty.**,org.etsi.uri.**,org.jboss.com.**,org.jdom2.**,org.jfree.**,org.joda.time.**,org.terracotta.quartz.**,ucar.nc2.grib.**,javax.imageio.metadata.**,com.jmatio.io.**,javax.script.**,com.sun.**,java.rmi.**,opennlp.tools.sentiment.**,java.lang.**,java.util.**,sun.misc.Unsafe.**,sun.**,org.w3.**,net.sf.ehcache.distribution.**,org.apache.http.**,org.apache.any23.**,com.graphbuilder.curve.**,com.strobel.decompiler.**,com.uwyn.jhighlight.**,rg.codehaus.stax2.**,org.openxmlformats.schemas.**,org.springframework.**,org.slf4j.**,com.mysql.**,org.pushingpixels.**,org.hibernate.**,org.jboss.**,net.bytebuddy.**,javax.persistence.**,org.eclipse.**,java.awt.datatransfer.**,java.sql.**,org.objectweb.**,org.apache.any23.**
-ignorewarnings
-verbose
-printseeds seed

# Keep - Applications. Keep all application classes, along with their 'main' methods.
-keepclasseswithmembers public class * {
    public static void main(java.lang.String[]);
}

-keep interface *
-keepnames class ** implements com.xxx.xx.utils.ISerialisable
-keepclassmembers class ** implements com.xxx.xx.utils.ISerialisable {
  <fields>;
  }

-keep,allowshrinking class ** extends com.xxx.xx.utils.ISerialisable

# Keep - Applications. Keep all application classes, along with their 'main' methods.
-keepclasseswithmembers public …
Run Code Online (Sandbox Code Playgroud)

java proguard maven proguard-maven-plugin openjdk-11

2
推荐指数
1
解决办法
4270
查看次数

使用 OpenJDK 11 的 Jakarta Mail:java.util.ServiceConfigurationError:jakarta.mail.Provider:Provider com.sun.mail.imap.IMAPProvider 不是子类型

我正在从 java 8 迁移到 openjdk-11。现在邮件(使用 smtp 发送电子邮件)不再需要做更多的工作。该项目在Win10上使用openjdki 11和jakarta.mail-2.0.0。后来我添加了jakarta.activation-api-2.0.0。

    Properties props = new Properties();
    props.put("mail.smtp.host", host);

    Session session = Session.getInstance(props);
    session.setDebug(debug);

    try {
        // create a message
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
        message.setSubject("Jakarta Mail API Test");
        message.setSentDate(new Date());

        MimeBodyPart mbp1 = new MimeBodyPart();
        mbp1.setText("This is a message body.\nHere's line two.");
        MimeBodyPart mbp2 = new MimeBodyPart();
        mbp2.setText("This is the text in the message attachment.", "us-ascii");
        Multipart mp = new MimeMultipart();
        mp.addBodyPart(mbp1);
        message.setContent(mp);
        Transport.send(message);
    } catch (MessagingException mex) {
        mex.printStackTrace(); …
Run Code Online (Sandbox Code Playgroud)

jakarta-mail openjdk-11

2
推荐指数
1
解决办法
1万
查看次数

EWS(Exchange WebService)API 在 Open JDK 11 中也无法在 Zulu Java 11 中工作

我一直在使用EWS(Exchange Web Service)从Java 8中的共享邮箱中读取电子邮件。

升级到Java 11 (Open JDK 11/Zulu Java 11)后,在阅读电子邮件时遇到异常。

这是例外:

java.lang.NoClassDefFoundError: javax/xml/ws/http/HTTPException在 Microsoft.exchange.webservices.data.core.ExchangeService.internalFindFolders(ExchangeService.java:370) ~[ews-java-api-2.0.jar:na]

java exchangewebservices azul-zulu java-11 openjdk-11

1
推荐指数
1
解决办法
1682
查看次数

如何引导构建 jdk?

我正在尝试构建jdk-11+8以读取java.nio.ByteBufferLinux 的生成源代码。

我根据文档安装了所有依赖项,然后成功运行configure

然而,当我运行时make,我收到一个关于缺少 Java 包的奇怪错误,这看起来像是引导问题。

git clone https://github.com/openjdk/jdk.git 
pushd jdk
bash configure
...
The existing configuration has been successfully updated in
/home/ubuntu/Code/jdk/build/linux-x86_64-normal-server-release
using default settings.

Configuration summary:
* Debug level:    release
* HS debug level: product
* JDK variant:    normal
* JVM variants:   server
* OpenJDK target: OS: linux, CPU architecture: x86, address length: 64
* Version string: 11-internal+0-adhoc.ubuntu.jdk (11-internal)

Tools summary:
* Boot JDK:       openjdk version "11.0.9.1" 2020-11-04 …
Run Code Online (Sandbox Code Playgroud)

java linux openjdk-11

1
推荐指数
1
解决办法
1196
查看次数

Java 8 和 11 之间相同语言环境的不同分组分隔符

我正在根据语言和地区设置区域设置,并希望使用此设置解析 BigDecimal 数字。但我面临的问题是两个 OpenJDK 的分组分隔符不同。

下面是我尝试使用 OpenJDK 8 和 OpenJDK 11 执行的示例代码。

Locale l = new Locale.Builder().setLanguage("de").setRegion("CH").build();
System.out.println("Locale set to " + Locale.getDefault(Locale.Category.FORMAT));
DecimalFormat nf = (DecimalFormat)NumberFormat.getInstance(Locale.getDefault(Locale.Category.FORMAT));
System.out.println("Grouping Separator: " + nf.getDecimalFormatSymbols().getGroupingSeparator());
Run Code Online (Sandbox Code Playgroud)

输出

OpenJDK 8
---------
Locale set to de_CH
Grouping Separator: '


OpenJDK 11
----------
Locale set to de_CH
Grouping Separator: ’
Run Code Online (Sandbox Code Playgroud)

我需要一个通用的解析方法,其中分组分隔符返回相同,以便设计我的单元测试很容易,并且无论是使用 java 8 还是 11 运行它都会通过。请协助。

java locale java-8 java-11 openjdk-11

1
推荐指数
1
解决办法
62
查看次数

Java openjdk 错误:无法加载库(java awt)

我尝试运行 java awt 程序,但出现以下错误:

我正在使用 lubuntu 18.04 和 openjdk 11

Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2630)
    at java.base/java.lang.Runtime.load0(Runtime.java:768)
    at java.base/java.lang.System.load(System.java:1837)
    at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
    at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
    at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
    at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2648)
    at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
    at java.base/java.lang.System.loadLibrary(System.java:1873)
    at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1399)
    at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1397)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1396)
    at java.desktop/java.awt.Toolkit.<clinit>(Toolkit.java:1429)
    at java.desktop/java.awt.Component.<clinit>(Component.java:621)
Run Code Online (Sandbox Code Playgroud)

这是我在编辑器中编写的代码:

class calculator extends Frame{  
    calculator(){  
    Button b=new Button("click me");  
    b.setBounds(30,100,80,30);  
    add(b);  
    setSize(300,300); 
    setLayout(null);  
    setVisible(true); 
    }  
    
    public static void main(String args[]){  
    calculator f=new calculator();  
    }}  
Run Code Online (Sandbox Code Playgroud)

我可以在 openjdk …

java java-11 openjdk-11

1
推荐指数
1
解决办法
1万
查看次数

使用反射的 OpenJDK 11 动态枚举

我正在开发一个使用 JDK8 运行的项目,我们希望将其迁移到 OpenJDK11。

但是,有一些遗留代码可以在运行时动态创建枚举(使用反射和sun.reflect.*包):

public class EnumUtil {
    static Object makeEnum(...) {
        ...
        enumClass.cast(sun.reflect.ReflectionFactory.getReflectionFactory() .newConstructorAccessor(constructor).newInstance(params));
    }
}
Run Code Online (Sandbox Code Playgroud)

或者

    // before, field is made accessible, the modifier too
    sun.reflect.FieldAccessor fieldAccessor = sun.reflect.ReflectionFactory.getReflectionFactory().newFieldAccessor(field, false);
    field.set(target, value);
Run Code Online (Sandbox Code Playgroud)

例如,假设我们有枚举AEnum

public enum AEnum {
    ; // no values at compile time

    private String label;

    private AEnum (String label) {
        this.label = label;
    }
Run Code Online (Sandbox Code Playgroud)

然后,我们添加这样的枚举值:

EnumUtil.addEnum(MyEnum.class, "TEST", "labelTest");
Run Code Online (Sandbox Code Playgroud)

最后,在运行时,我们有一个带有 label = labelTest 的值AEnum.TEST(不是通过直接调用,而是通过)。Enum.valueOf

不幸的是,sun.reflect.*OpenJDK11 中不再提供类。

我尝试过使用 …

java reflection enums openjdk-11

1
推荐指数
1
解决办法
1686
查看次数

如何配置 openJDK11 以从源代码构建?

我需要从源代码交叉编译这个 OpenJava 分支https://gitlab.com/gosjava/11/openjdk/-/tree/master/ - 对于 aarch64-linux-gnu devkit 目标:\n为此我安装了 java 10.0.2作为主机 JDK 然后运行“./configure”

\n
\xe2\x94\x94\xe2\x94\x80$ ./configure    \n...\nconfigure: Potential Boot JDK found at /home/katya/java is incorrect JDK version (Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true); ignoring\nconfigure: (Your Boot JDK version must be one of: 10 11)\nchecking for javac... /home/katya/java/bin/javac\nchecking for java... /home/katya/java/bin/java\nconfigure: Found potential Boot JDK using java(c) in PATH\nconfigure: Potential Boot JDK found at /home/katya/java is incorrect JDK version (Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true); ignoring\nconfigure: (Your Boot JDK version must be one …
Run Code Online (Sandbox Code Playgroud)

java java-11 openjdk-11

0
推荐指数
1
解决办法
2595
查看次数