找不到编译.idl文件的idlj工具。检查/usr/bin并/usr/lib/jvm/java-11-jdk。它不是和JDK捆绑在一起的吗?如何添加idlj编译器?
PS 我更喜欢Python,并且不经常使用Java。如果这是一个愚蠢的问题,我很抱歉。
对于 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 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 文件,只是为了验证该类是否存在。
<?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) 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) 我正在尝试将 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) 最近将应用程序从 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) 我使用Springboot构建了一个简单的应用程序。我在部署到Linux服务器时使用的ZGC垃圾收集器使用大量内存..我尝试使用Xmx500m将最大堆内存限制为500MB,但JAVA程序仍然使用了1GB以上。我用G1收集器的时候只用了350MB。不知道为什么,这是JDK11的BUG吗?还是我的启动参数有问题?####运行环境
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的初学者,我不明白为什么。
在mvn clean install使用 Java 11 在 IntelliJ Idea 中智能执行时,我收到以下警告:
警告:java:来自注释处理器 'net.java.dev.hickory.prism.internal.PrismGenerator' 的支持的源版本 'RELEASE_6' 小于 -source '11'
如何修复它以及它来自哪里?注意我使用:
1.18.121.3.1.Final我还使用默认设置在 IDE 中启用了注释处理:
Build, Execution, Deployment-> Compiler-> Annotation processors-> 检查Enable annotation processing我有一种情况,其中一个 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)