标签: java-11

如何在 Java 11(或更高版本)中启动单文件程序?

JEP 330描述了 JDK 11 中的一项新功能,用于在 Java 中启动单文件程序。我试过了:

$ ./Example.java

但它不起作用。正确的用法是什么?

java java-11

6
推荐指数
2
解决办法
1221
查看次数

缺少 Idlj 编译器 (Linux/JDK 11)

找不到编译.idl文件的idlj工具。检查/usr/bin并/usr/lib/jvm/java-11-jdk。它不是和JDK捆绑在一起的吗?如何添加idlj编译器?

PS 我更喜欢Python,并且不经常使用Java。如果这是一个愚蠢的问题,我很抱歉。

java idl idlj java-11

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

如何使用 jdk 11 读取堆状态?

对于 jdk 8,我的步骤是计算进程运行时消耗了多少内存:

/usr/java/latest/bin>: ./jps

  27116 Main
  7591 Jps
  2879 AmbusProcessor   
Run Code Online (Sandbox Code Playgroud)

然后获取进程 ID 来检查堆的状态:

/usr/java/latest/bin>: ./jmap -heap 2879  



Attaching to process ID 2879, please wait...

Debugger attached successfully.
Server compiler detected.
JVM version is 24.45-b08
using thread-local object allocation.
Parallel GC with 13 thread(s)

Heap Configuration:

   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 68719476736 (65536.0MB)     
   NewSize          = 1310720 (1.25MB)
   MaxNewSize       = 17592186044415 MB
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 21757952 (20.75MB)
   MaxPermSize      = …
Run Code Online (Sandbox Code Playgroud)

java java-11

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

NoClassDefFoundError:Java 11 中的 javax/xml/bind/JAXBException 但已添加 Maven 依赖项

我正在尝试从 Java 8 迁移到 Java 11,但收到此错误:

    Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project Core: Fatal error compiling: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException: javax.xml.bind.JAXBException
Run Code Online (Sandbox Code Playgroud)

现在,我尝试将此依赖项添加到我的 pom.xml 文件中来解决此问题:

    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.1</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

但我不断收到完全相同的问题。我也尝试过2.3.0版本。

我查看了有效的 POM,其中出现了 jaxb-api 依赖项。另外,我打开了 maven 下载的 jar 文件,只是为了验证该类是否存在。

JAXBException 类 这是我的 POM 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mycompany.core</groupId>
    <artifactId>Core</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Core</name>

    <properties>
        <maven.version>3.8.0</maven.version>
        <java.version>11</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        ... <!-- Other Sonar settings -->
</properties>


<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>${spring-boot.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>${spring-boot.version}</version>
        </dependency>
        <dependency> …
Run Code Online (Sandbox Code Playgroud)

jaxb maven java-11

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

为什么明明使用了未使用的方法却出现 PMD 违规

PMD 失败:...规则:UnusedPrivateMethod 优先级:3 避免未使用的私有方法,例如“printMyString(String)”

private void anyMethod() {
    var myString = "a String";
    printMyString(myString);
}

private void printMyString(String string) {
    System.out.println(string);
}
Run Code Online (Sandbox Code Playgroud)

使用maven这个插件

            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>3.12.0</version>
Run Code Online (Sandbox Code Playgroud)

java pmd java-11

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

将 Spring Boot 项目从 JDK 8 升级到 JDK 11

我正在尝试将 Spring boot 应用程序从 JDK 8 升级到 JDK 11,并进行了以下更改:

1.在pom.xml中使用java.version

<properties>
<java.version>11</java.version>
</properties>
Run Code Online (Sandbox Code Playgroud)

2.添加已删除模块的依赖关系:

<!--1.JAF(java.activation)-->

<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
</dependency>

<!--2.JTA(java.transaction)-->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>

<!--3.JAXB(java.xml.bind)-->
<!--API-->
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.2</version>
</dependency>

<!--Runtime-->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
</dependency>

<!--4.JAX-WS(java.xml.ws)-->
<!--API-->
<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws-api</artifactId>
<version>2.3.2</version>
</dependency>

<!--Runtime-->
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.3.2</version>
</dependency>

<!--5.CommonsAnnotations(java.xml.ws.annotation)-->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

3.添加了以下插件:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.0</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)

当我运行时mvn clean package,出现错误:

compiler message …
Run Code Online (Sandbox Code Playgroud)

java maven java-8 spring-boot java-11

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

自 OpenJDK Java 11 获取 javax.net.ssl.SSLHandshakeException: 收到致命警报: handshake_failure

最近将应用程序从 Oracle Java 9 更新到 AdoptJDk 11.0.6,我现在看到以下代码形式的错误:

 public static String convertWikidataUrl(String wikidataUrl)
    {
        String qPage  = wikidataUrl.substring(wikidataUrl.lastIndexOf('/') + 1);
        String apiUrl = WIKIDATA_IMAGE_API_URL + qPage;
        try
        {
            URL url = new URL(apiUrl);
            HttpURLConnection uc = (HttpURLConnection) url.openConnection();
            int responseCode = uc.getResponseCode();
            if (responseCode != HttpURLConnection.HTTP_OK)
            {
                MainWindow.logger.severe(":ResponseCode:"+responseCode);

            }

            //Everything ok so continue
            BufferedInputStream bis = new BufferedInputStream(uc.getInputStream());
            JAXBContext jc = getWikidataInitialContext();
            Unmarshaller um = jc.createUnmarshaller();
            Api api = (Api) um.unmarshal(bis);
            if(api.getClaims()!=null
                    && api.getClaims().getProperty()!=null
                    && api.getClaims().getProperty().getClaim()!=null
                    && api.getClaims().getProperty().getClaim().getMainsnak()!=null
                    && api.getClaims().getProperty().getClaim().getMainsnak().getDatavalue()!=null)
            { …
Run Code Online (Sandbox Code Playgroud)

ssl java-11 adoptopenjdk

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

Java ZGC垃圾收集器使用大量内存

我使用Springboot构建了一个简单的应用程序。我在部署到Linux服务器时使用的ZGC垃圾收集器使用大量内存..我尝试使用Xmx500m将最大堆内存限制为500MB,但JAVA程序仍然使用了1GB以上。我用G1收集器的时候只用了350MB。不知道为什么,这是JDK11的BUG吗?还是我的启动参数有问题?####运行环境

  • 操作系统:CentOS Linux 7.8.2003
  • JDK版本:jdk11
  • springboot 版本:v2.3.0.RELEASE 这是我的 Java 启动命令
java -Xms128m -Xmx500m \
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC \
-jar app.jar
Run Code Online (Sandbox Code Playgroud)

这是运行时内存使用情况的截图

堆内存使用情况 https://github.com/JoyfulAndSpeedyMan/assets/blob/master/2020-07-13%20201259.png?raw=true

系统内存使用情况 https://github.com/JoyfulAndSpeedyMan/assets/blob/master/2020-07-13%20201357.png?raw=true


以下是使用默认垃圾收集器 Java 启动命令时发生的情况

java -Xms128m -Xmx500m \
-jar app.jar
Run Code Online (Sandbox Code Playgroud)

堆内存使用情况 https://github.com/JoyfulAndSpeedyMan/assets/blob/master/2020-07-13%20202442.png?raw=true

系统内存使用情况 https://github.com/JoyfulAndSpeedyMan/assets/blob/master/2020-07-13%20202421.png?raw=true

jdk11 默认使用 G1 垃圾收集器。从理论上讲,G1不应该比ZGC更占用内存吗?我为什么不那样使用它?我误解了吗?由于我是JVM的初学者,我不明白为什么。

java jvm java-11 zgc

6
推荐指数
2
解决办法
2408
查看次数

IntelliJ Idea:关于 Java 11 上支持的注释处理器源版本“RELEASE_6”的 Maven 编译警告

在mvn clean install使用 Java 11 在 IntelliJ Idea 中智能执行时,我收到以下警告:

警告:java:来自注释处理器 'net.java.dev.hickory.prism.internal.PrismGenerator' 的支持的源版本 'RELEASE_6' 小于 -source '11'

如何修复它以及它来自哪里?注意我使用:

  • 龙目岛版 1.18.12
  • 地图结构版本 1.3.1.Final

我还使用默认设置在 IDE 中启用了注释处理:

  • Build, Execution, Deployment-> Compiler-> Annotation processors-> 检查Enable annotation processing

java intellij-idea maven mapstruct java-11

6
推荐指数
2
解决办法
3438
查看次数

Java 中 JAVA_OPTS“-D”标志的值是否有最大大小限制?

我有一种情况,其中一个 JVM 选项,“-D”标志很大,超过 1000 个字符。这个值有多大限制?

-Dhttp.nonProxyHosts=localhost|127.0.0.1|169.254.169.254|162.31.160.0/20|100.77.147.160/27|100.77.163.160/27|100.77.179.160/27|162.18.168.0/23|162.18.170.0/23|162.18.172.0/23|10.100.0.0/16|.internal|.foobr.com|.execute-api.us-west-2.amazonaws.com|.s3.us-west-2.amazonaws.com|.us-west-2.eks.amazonaws.com|.us-west-2.vpce.amazonaws.com|amazonlinux.us-west-2.amazonaws.com|api.sagemaker.us-west-2.amazonaws.com|cloudformation.us-west-2.amazonaws.com|cloudtrail.us-west-2.amazonaws.com|codebuild-fips.us-west-2.amazonaws.com|codebuild.us-west-2.amazonaws.com|config.us-west-2.amazonaws.com|dynamodb.us-west-2.amazonaws.com|ec2.us-west-2.amazonaws.com|ec2messages.us-west-2.amazonaws.com|elasticloadbalancing.us-west-2.amazonaws.com|events.us-west-2.amazonaws.com|kinesis.us-west-2.amazonaws.com|kms.us-west-2.amazonaws.com|logs.us-west-2.amazonaws.com|monitoring.us-west-2.amazonaws.com|runtime.sagemaker.us-west-2.amazonaws.com|secretsmanager.us-west-2.amazonaws.com|servicecatalog.us-west-2.amazonaws.com|sns.us-west-2.amazonaws.com|ssm.us-west-2.amazonaws.com|ssmmessages.us-west-2.amazonaws.com|sts.us-west-2.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

java jvm-arguments java-11

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

标签 统计

java-11 ×10

java ×8

maven ×3

adoptopenjdk ×1

idl ×1

idlj ×1

intellij-idea ×1

java-8 ×1

jaxb ×1

jvm ×1

jvm-arguments ×1

mapstruct ×1

pmd ×1

spring-boot ×1

ssl ×1

zgc ×1