标签: java-11

Java 11 和 jacorb。ClassNotFoundException: javax.rmi.CORBA.Stub

我正在尝试使用 jacorb 3.9 执行我的 java 11 (openjdk) 应用程序。应用程序开始执行但崩溃抱怨丢失:

javax.rmi.CORBA.Stub
Run Code Online (Sandbox Code Playgroud)

我已经在 CLASSPATH 中包含了所有 jacorb 库

set CLASSPATH = ${JACORB_PATH}/jacorb.jar:${CLASSPATH}
set CLASSPATH = ${JACORB_PATH}/jacorb-3.9.jar:${CLASSPATH}
set CLASSPATH = ${JACORB_PATH}/jacorb-omgapi.jar:${CLASSPATH}
set CLASSPATH = ${JACORB_PATH}/slf4j-api.jar:${CLASSPATH}
set CLASSPATH = ${JACORB_PATH}/slf4j-jdk14-1.7.14.jar:${CLASSPATH}
set CLASSPATH = ${JACORB_PATH}/jacorb-services.jar:${CLASSPATH}
set CLASSPATH = ${JACORB_PATH}/picocontainer.jar:${CLASSPATH}
set CLASSPATH = ${JACORB_PATH}/wrapper.jar:${CLASSPATH}
set CLASSPATH = ${JACORB_PATH}/antlr.jar:${CLASSPATH}
set CLASSPATH = ${JACORB_PATH}/idl.jar:${CLASSPATH}
Run Code Online (Sandbox Code Playgroud)

执行时,我得到这个:

java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.ClassNotFoundException: javax.rmi.CORBA.Stub
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
Run Code Online (Sandbox Code Playgroud)

我还尝试使用以下方法设置 JDK_JAVA_OPTIONS:

--module-path ${JACORB_PATH} --add-modules java.corba 
-Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB -Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton
Run Code Online (Sandbox Code Playgroud)

但抱怨“发现两个版本的模块 slf4j.jdk14”

执行程序的命令是:

java -classpath …
Run Code Online (Sandbox Code Playgroud)

java jacorb java-11

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

亚马逊的 Corretto JVM 11 无法识别 JVM 11 标志 PrintHeapAtGC

遇到这个,奇怪的是,我找不到任何关于它的页面。在谷歌上搜索“无法识别 PrintHeapAtGC”没有任何帮助。事实上,它导致线程谈论人们如何在 JVM 11 中毫无问题地使用它。

我已经打印了我每行使用一个的标志,也许是因为某种组合,我什至不知道是组合?

我什至如何检查?

有人可以看看这个并告诉我出了什么问题吗?

-XX:+ExitOnOutOfMemoryError 
-XX:NewRatio=3 
-XX:SurvivorRatio=4 
-XX:TargetSurvivorRatio=90 
-XX:MaxTenuringThreshold=8 
-XX:+UseParallelGC 
-XX:ParallelGCThreads=4 
-XX:+CMSScavengeBeforeRemark 
-XX:PretenureSizeThreshold=64m 
-XX:+UseCMSInitiatingOccupancyOnly 
-XX:CMSInitiatingOccupancyFraction=50 
-XX:CMSMaxAbortablePrecleanTime=6000 
-XX:+CMSParallelRemarkEnabled 
-XX:+ParallelRefProcEnabled 
-XX:-OmitStackTraceInFastThrow -verbose:gc 
-XX:+PrintHeapAtGC 
-XX:+PrintGCDetails 
-XX:+PrintGCDateStamps 
-XX:+PrintGCTimeStamps 
-XX:+PrintTenuringDistribution 
-XX:+PrintGCApplicationStoppedTime -Xloggc:/tmp/gc.log 
-XX:+UseGCLogFileRotation 
-XX:NumberOfGCLogFiles=9 
-XX:GCLogFileSize=20M 
-XX:+PrintFlagsFinal 
-XX:+PrintFlagsWithComments -version
Run Code Online (Sandbox Code Playgroud)

java jvm java-11 corretto

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

在 java 11 中从 wsdl 生成类

如何使用 gradle 5 从 Java 11 中的 WSDL 生成类?

我正在使用 wsimport seeber 插件,但它看起来在 java 11 中不起作用

dependencies {
            classpath "gradle.plugin.me.seeber.gradle:gradle-wsimport-plugin:1.1.1"
}
Run Code Online (Sandbox Code Playgroud)

在 Intelij Idea 我得到:

  • 出了什么问题:配置项目“:ReturnRedirectWorker-api”时出现问题。

    执行模型规则时抛出异常:WsimportPlugin.PluginRules#createWsdlSourceSets(ModelMap, FileOperations) > create(wsdlMain) > create(wsdl) 无法创建 WsdlSourceSet 类型的 LanguageSourceSet

java wsdl gradle java-11

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

运行javafx应用程序时没有出现窗口

使用 VM 参数运行 JavaFX 应用程序。程序编译并运行。在 MacOS 上使用 Eclipse。当程序运行时,它会在 Dock 中显示 java 咖啡杯徽标,但没有出现窗口。

我希望能够成功运行这个程序。我相信这是一个 Eclipse 配置问题而不是代码。

让 JavaFX 在 Eclipse for Mac 上运行时遇到了很多问题,主要问题是库不存在且无法导入。我能够通过从这里下载 JavaFX ( https://gluonhq.com/products/javafx/ ),在我的项目中创建一个用户定义的库并使用 VM 参数运行程序来使其工作:--module-path /Library/Java/JavaVirtualMachines/javafx-sdk-11.0.2/lib --add-modules=javafx.controls。现在程序可以编译,但我遇到了上述问题。

这篇文章描述了我遇到的问题:https : //discussions.apple.com/thread/7886329

import javafx.application.*;
import javafx.scene.*;
import javafx.stage.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;

public class SimpleCalculator extends Application
{

    private Label firstValue;
    private Label secondValue;
    private Label sumLabel;

    public void start( Stage myStage) 
    {
        myStage.setTitle( "Simple Calculator");
        FlowPane rootNode = new FlowPane();        
        Scene myScene = new Scene( rootNode, 300, …
Run Code Online (Sandbox Code Playgroud)

java eclipse macos javafx java-11

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

带有 Jdk 11 的 SpringTemplate 间歇性地抛出连接重置异常

我使用 SpringRestTemplate对另一个服务(NodeJS 服务)进行休息调用。间歇性地出现连接重置错误。相同的代码在 JDK 8 和 Spring boot 2.0.1 上运行良好,在升级到Amazon Corretto JDK 11 和 Spring boot 2.1.5 后,开始看到这个问题。

Caused by: javax.net.ssl.SSLException: Connection reset
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:127)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:264)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:259)
        at java.base/sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1314)
Run Code Online (Sandbox Code Playgroud)

被抑制的异常:

org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:735)
        ... 143 common frames omitted
        Suppressed: java.net.SocketException: Broken pipe (Write failed)
                at java.base/java.net.SocketOutputStream.socketWrite0(Native Method)
                at java.base/java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:110)
                at java.base/java.net.SocketOutputStream.write(SocketOutputStream.java:150)
Run Code Online (Sandbox Code Playgroud)

一些博客提到 JDK 11 与 TLS1.3 有问题

  1. 尝试设置 -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
  2. 尝试将SocketFactory这些协议设置为RestTemplate.
  3. 尝试增加socketTimeout重置客户端。

仍然没有运气。

#代码:#

HttpHeaders headers = new HttpHeaders(); …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc resttemplate spring-boot java-11

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

带有 PATCH 方法的 Java 11 HttpRequest

我尝试使用 java 11HttpRequest使用 PATCH 方法调用 msgraph webservice:

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.URLEncoder;

import java.nio.charset.StandardCharsets;

import groovy.json.JsonSlurper;
import groovy.json.JsonOutput;

access_token = "my_token";

def url = 'https://graph.microsoft.com/v1.0/groups/group_id/drive/items/01P4AIIJ5QTIIAZ2FLEZBIZWRV6KEBIMM5/workbook/worksheets/%7B00000000-0001-0000-0000-000000000000%7D/range(address=\'A1\')'

HttpClient httpClient = HttpClient.newBuilder()
                                    .version(HttpClient.Version.HTTP_2)
                                    .build();

jsonPayloadString = '{"values":["blabla"]}';


jsonPayload = HttpRequest.BodyPublishers.ofString(jsonPayloadString.toString())

HttpRequest request = HttpRequest.newBuilder()
                                 .uri(URI.create(url))
                                 .PATCH(jsonPayload)
                                 .header("Content-Type", "application/json")
                                 .build();

HttpResponse response = httpClient.send(request,HttpResponse.BodyHandlers.ofString());

Run Code Online (Sandbox Code Playgroud)

错误 :

没有方法签名:jdk.internal.net.http.HttpRequestBuilderImpl.PATCH() 适用于参数类型:(jdk.internal.net.http.RequestPublishers$StringPublisher) 值:[jdk.internal.net.http.RequestPublishers$ StringPublisher@280a600b]

通话本身效果很好,例如在 Postman 中。但我不能让它在 groovy/java 中工作。

我以前使用过,HttpUrlConnection但它不支持 PATCH。实际上可以使用HttpRequest吗?

我在网上找不到任何使用 PATCH 方法的工作示例。

java groovy httprequest java-http-client java-11

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

OpenJDK 11 和 macOS 不支持 ZGC?

我正在尝试使用 ZGC 垃圾收集器运行 Spring Boot 应用程序,并传入以下 JVM 选项build.gradle

bootRun {
    jvmArgs = ["-XX:+UnlockExperimentalVMOptions", "-XX:+UseZGC", "-Xlog:gc*"]
}
Run Code Online (Sandbox Code Playgroud)

运行应用程序 ( gradle bootRun) 时出现以下错误:

> Task :bootRun FAILED
Error occurred during initialization of VM
Option -XX:+UseZGC not supported
Run Code Online (Sandbox Code Playgroud)

java - 版本:

openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.6+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.6+10, mixed mode)
Run Code Online (Sandbox Code Playgroud)

如果有帮助,我正在运行 10.15.2 (19C57) 版本的 macOS (Catalina)。只是 macOS 的问题吗?

java garbage-collection gradle java-11 zgc

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

如何以随机顺序调用方法(Java JDK11)?

class Scratch {

    public void meth1(){

    }
    public void meth2(){

    }
    public void meth3(){

    }
    public void meth4(){

    }
    public void meth5(){

    }
    public static void main(String[] args) {
        int randomNumber=(int)Math.random()*5;
    }
}
Run Code Online (Sandbox Code Playgroud)

这里我有5个方法,我想随机调用它们。我是 OOP 的新手,但对 C 有点了解,在这种情况下,我会将函数(方法)的地址存储在一个数组中,在 [0,4] 之间生成一个随机数并使用数组调用函数随机顺序。但是在Java中,我不知道如何获取方法的内存地址。我该怎么做?

java methods pointers memory-address java-11

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

从 Spock 1.2 迁移到 2.0-M2 后,Maven surefire 插件没有运行测试

工作设置 -

Spock older version - 1.2-groovy-2.4
jdk version - 8
Maven surefire plugin version - 2.22.0
Maven version - 3.5.0
Run Code Online (Sandbox Code Playgroud)

迁移设置 -

Spock version - 2.0-M2-groovy-2.5
jdk version - 11
Maven surefire plugin version - 3.0.0-M4
Maven version - 3.6.3
Run Code Online (Sandbox Code Playgroud)

MCVE - https://github.com/ajaydivakaran/spock_spike

升级 Spock 的目的是使其与 jdk 11 兼容。测试类文件存在于 target/test-classes 文件夹中,但不会运行。

maven spock maven-surefire-plugin java-11

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

如何使用 Java11 解决“无法访问类型 com.sun.crypto.provider.SunJCE”?

我正在尝试将我的应用程序从 Java 8 迁移到 Java 11。在我的一个项目类中,我有一行Security.addProvider(new com.sun.crypto.provider.SunJCE());. 我收到此行的编译错误。如何解决这个问题?

java migration java-11

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