标签: java-11

JavaFX 模块化应用程序,java.lang.module.FindException:未找到模块 javafx.controls(Java 11,Intellij)

我的模块化 JavaFX 应用程序有问题。我创建了一个 JavaFX 项目并添加了 JavaFX 库和 JavaFX 模块得到认可。但是,我不断收到这些错误消息:

Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.controls not found
Run Code Online (Sandbox Code Playgroud)

完整设置的图像在此附上:

在此处输入图片说明

编辑:

这是所有错误消息:

/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.library.path=
/home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib --module-
-path=~/Documents/JavaTools/javafx-sdk-11.0.1/lib 
--add-modules=javafx.controls,javafx.fxml
--add-modules javafx.base,javafx.graphics --add-reads
-javaagent:/home/thenekolite/idea-IU-183.4588.61/
lib/idea_rt.jar=35937:/home/thenekolite/idea-IU-183.4588.61/bin
-Dfile.encoding=UTF-8 -classpath /home/thenekolite/IdeaProjects/
Latihan1/out/production/Latihan1:/home thenekolite/Documents/JavaTools/
javafx-sdk-11.0.1/lib/src.zip:/home/thenekolite/Documents/JavaTools/
javafx-sdk-11.0.1/lib/javafx-swt.jar:/homehome/thenekolite/Documents
/JavaTools/javafx-sdk-11.0.1/lib/javafx.fxml.jar:/home/thenekolite/
Documents/JavaTools/javafx-sdk-11.0.1/libjavafx.media.jar:
/home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib/
/javafx.swing.jar:/home/thenekolite/Documents/JavaTools/javafx
sdk-11.0.1/lib/javafx.controls.jar:/home/thenekolite/
Documents/JavaTools/javafx-sdk-11.0.1/lib/javafx.graphics.jar
-p /home/thenekolite/Documents/JavaTools/javafx-sdk-11.0.1/lib/
/javafx.base.jar:/home/thenekolite/Documents/
JavaTools/javafx-sdk-11.0.1/lib/javafx.graphics.jar sample.Main

Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.controls not found
Run Code Online (Sandbox Code Playgroud)

我还添加了 vm 选项:

在此处输入图片说明

但是,我仍然收到此错误消息。

java intellij-idea openjfx java-11 javafx-11

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

适用于Spring启动项目的AWS beanstalk上的Java 11

我是Spring Boot的新手,我正在尝试开发一个应用程序,以便以后在AWS beanstalk上部署它.我使用java 11启动了项目,但后来我发现AWS只支持java 8.是否可以将pom.xml中的"maven.compiler.target"设置为1.8以使其正常运行?我是否必须使用Java 1.8进行开发和编译?我想使用新的Java功能和库.如果有人有同样的问题,我想有一些意见.谢谢.光盘

java spring amazon-web-services maven java-11

9
推荐指数
3
解决办法
2539
查看次数

Java 11 HttpClient不发送基本身份验证

我编写了以下HttpClient代码,但它没有导致将Authorization标头发送到服务器:

public static void main(String[] args) {
    var client = HttpClient.newBuilder()
            .authenticator(new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("username", "password".toCharArray());
                }
            })
            .version(HttpClient.Version.HTTP_1_1)
            .build();
    var request = HttpRequest.newBuilder()
            .uri("https://service-that-needs-auth.example/")
            .build();
    client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
            .thenApply(HttpResponse::body)
            .thenAccept(System.out::println)
            .join();
}
Run Code Online (Sandbox Code Playgroud)

我从我正在调用的服务中收到HTTP 401错误.就我而言,它是Atlassian Jira Cloud API.

我已经确认我的getPasswordAuthentication()方法没有被HttpClient调用.

为什么它不起作用,我该怎么做呢?

java http java-http-client java-11

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

打开 JDK 11 HTTP/2 Handshake ServerHello java.util.NoSuchElementException

在通过 HTTP/2 测试 Open JDK 11 HTTP 客户端时,有一个服务器端错误,看起来像是 JDK 11 错误。

该测试针对 Tomcat 9 服务器运行多个线程,测试所有线程是否使用 HTTP/2 和 TLS1.3。

令人担忧的是错误在“sun.security.ssl.SSLHandshake.produce”内部,这意味着它不是Tomcat,而是导致错误的JDK。

任何人都可以确认您在对 JDK 11 的 HTTP 层进行负载测试时有相同的经验吗?如果是这样,我会向 Open JDK 团队报告。

该错误仅在运行负载测试时才明显:

java.util.NoSuchElementException: No value present
        at java.base/java.util.Optional.get(Optional.java:148) ~[na:na]
        at java.base/sun.security.ssl.ServerHello$T13ServerHelloProducer.produce(ServerHello.java:551) ~[na:na]
        at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:436) ~[na:na]
        at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1224) ~[na:na]
        at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1160) ~[na:na]
        at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:849) ~[na:na]
        at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:810) ~[na:na]
        at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392) ~[na:na] ...
Run Code Online (Sandbox Code Playgroud)

这个github项目用于测试。有关更多详细信息,请参阅项目自述文件。

java java-http-client java-11

9
推荐指数
0
解决办法
1377
查看次数

javax.net.ssl.SSLHandshakeException:没有可用的身份验证方案

谷歌揭示了 jdk11.0.2 中的一个错误,但我升级到了 jdk11.0.3,这个错误对我来说仍然存在。重现步骤

  1. git clone https://github.com/deanhiller/webpieces.git
  2. 添加行"org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-11.0.3.jdk/Contents/Home"~/.gradle/gradle.properties将 jdk 设置为 11.0.3
  3. ./gradlew :core:core-asyncserver:test从 webpieces 目录运行

测试用例挂起并在日志中显示

Caused by: javax.net.ssl.SSLHandshakeException: No available authentication scheme
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:128)
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:308)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:264)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:255)
    at java.base/sun.security.ssl.CertificateMessage$T13CertificateProducer.onProduceCertificate(CertificateMessage.java:945)
    at java.base/sun.security.ssl.CertificateMessage$T13CertificateProducer.produce(CertificateMessage.java:934)
    at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:436)
    at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1224)
    at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1160)
    at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:849)
    at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:810)
    at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)
    at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
    at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1065)
    at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1052)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(SSLEngineImpl.java:999)
    at org.webpieces.ssl.impl.AsyncSSLEngine2Impl.createRunnable(AsyncSSLEngine2Impl.java:94)
    ... 12 common frames omitted
Run Code Online (Sandbox Code Playgroud)

我应该提交另一个 JDK bug,还是有人有任何想法?

已解决/相关的 JDK 错误:https://bugs.openjdk.java.net/browse/JDK-8211426

请注意,这会由于某种原因修复它: …

ssl java-11

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

为什么Java 11运行时会忽略我的包含sun.misc类的jar?

我正在尝试将代码库升级到Java11。不幸的是,我的代码依赖于内部使用sun.misc.BASE64Encoder和的第三方库Decoder。由于该sun.misc软件包已从Java 11 JRE中删除,因此出现了故障。该库的所有者尚未替换该依赖项,因此我坚持了一段时间。

如果可以控制代码,则可以使用java.util.BASE64类,但是正如我所说的那样,这些类是作为另一个库的可传递依赖项而来的,因此我无法更改。

我以为我会很聪明,只用这些类创建一个新的jar,但是由于某种原因,该jar被忽略了。

在此处输入图片说明

<dependency>
    <groupId>sun.misc</groupId>
    <artifactId>BASE64</artifactId>
    <version>1.8</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/sun.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我也尝试过将其显式添加到类路径中,但还是没有运气

这是JRE阻止您使用的那些软件包之一,还是我错过了某些模块规范,或者这是一个节目表演者吗?

这是输出

java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder
at com.propsco.util.support.PropsLoader.save(PropsLoader.java:478) ~[props-client-2.2.1.jar:na]
Run Code Online (Sandbox Code Playgroud)

java java-11

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

在 Linux 系统上使用 Apache FOP JDK 11 来自 sun.awt.FontConfiguration.getVersion 的 NPE

我正在使用 Apache FOP(v 2.3 和测试 v 2.5)。我最近从 Oracle JDK 8 升级到 Oracle JDK 11。我在 Oracle Linux(RedHat 衍生版本)上使用 JBoss EAP 7.2。使用 JDK 8 时一切正常,但只是升级到 JDK 11 就导致我的 XML -> PDF 和 XML -> PNG 的 FOP XSLT 创建以下堆栈跟踪(FOP 版本并不重要,因为会产生相同的错误)。

Caused by: java.lang.NullPointerException
        at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
        at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
        at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
        at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
Run Code Online (Sandbox Code Playgroud)

我的字体是 Google/RedHat 的 LiberationSans,我已将它们放在文件系统上并在名为 LiberationSans.xconf 的文件中进行配置。我已确保这些文件是全局可读的 (775),并且由运行 JBoss 实例的用户拥有。

Caused by: java.lang.NullPointerException
        at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
        at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
        at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
        at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
Run Code Online (Sandbox Code Playgroud)

在我的本地 Windows 计算机上一切正常,但我的部署是通过 Eclipse/JBoss 插件进行的,因此可能存在一些问题。Linux 服务器上的部署是通过 jboss-cli 进行的。

如果我可以提供任何其他可能有帮助的信息,请告诉我。如果我们必须放弃 FOP,我希望这是最后的手段。

apache-fop jboss-eap-7 java-11 oraclelinux

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

使用 Java 11 HttpClient 设置会话 cookie

我正在尝试使用 Java 11 HttpClient 获取页面的内容。由于该页面使用 OAuth,我想使用我的会话 cookie 进行身份验证。受这个问题的启发,我目前使用以下代码:

public static void main(String[] args) throws IOException, InterruptedException {
  String year = args[0];
  String day = args[1];
  String session = System.getenv("AOCSESSION");
  System.out.println(session);
  
  HttpRequest req = HttpRequest.newBuilder()
      .uri(URI.create("https://adventofcode.com/"+year+"/day/"+day+"/input")).GET().build();
  CookieManager cookieManager = new CookieManager();
  HttpCookie cookie = new HttpCookie("session", session);
  cookieManager.getCookieStore().add(URI.create("https://adventofcode.com"), cookie);
  HttpClient client = HttpClient.newBuilder().cookieHandler(cookieManager).build();

  String body = client.send(req, BodyHandlers.ofString()).body();
  System.out.println(body);
}
Run Code Online (Sandbox Code Playgroud)

然而,请求结果未经身份验证(响应:)Puzzle inputs differ by user. Please log in to get your puzzle input.。我已经尝试向 cookie 添加其他字段:

cookie.setDomain(".adventofcode.com");
cookie.setMaxAge(Instant.parse("2031-11-01T18:26:23.293Z").getEpochSecond()); …
Run Code Online (Sandbox Code Playgroud)

java cookies httpclient java-11

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

运行测试时 Java 11 上的 PowerMockito 2 错误:类 javax.xml.parsers.FactoryFinder 无法访问类 jdk.xml.internal.SecuritySupport

在 Java 11 上运行 PowerMockito2 测试时出现错误。

我能够通过将此注释放在类级别来解决此错误,但我不想这样做。有没有办法在不使用的情况下不出现此错误@PowerMockIgnore

@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*"})
Run Code Online (Sandbox Code Playgroud)

渐变依赖项:

testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.powermock:powermock-api-mockito2:2.0.9'
testImplementation "org.powermock:powermock-module-junit4:2.0.9"
Run Code Online (Sandbox Code Playgroud)

开始测试时出错:

class javax.xml.parsers.FactoryFinder (in unnamed module @0x4d96fc12) cannot access class jdk.xml.internal.SecuritySupport (in module java.xml) because module java.xml does not export jdk.xml.internal to unnamed module @0x4d96fc12
java.lang.IllegalAccessError: class javax.xml.parsers.FactoryFinder (in unnamed module @0x4d96fc12) cannot access class jdk.xml.internal.SecuritySupport (in module java.xml) because module java.xml does not export jdk.xml.internal to unnamed module @0x4d96fc12
    at javax.xml.parsers.FactoryFinder.<clinit>(FactoryFinder.java:69)
    at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:147)
    at ch.qos.logback.core.joran.event.SaxEventRecorder.buildSaxParser(SaxEventRecorder.java:79)
    at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:57)
    at …
Run Code Online (Sandbox Code Playgroud)

java powermockito java-11

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

编译失败:无法访问 LoggingEventAware [错误] 类文件,在 mvn clean install -U 上找不到 org.slf4j.spi.LoggingEventAware

我已经将 spring boot 版本从 2.3.5 升级到 2.7.5 ,解决了大部分依赖版本。但是,当我进行 Maven 全新安装时,我收到编译失败错误:无法访问 LoggingEventAware [错误] 未找到 org.slf4j.spi.LoggingEventAware 的类文件

但我在 java 文件 - LoggingConfiguration.java 中没有看到任何错误。

当我只是重新加载项目来解决所有依赖项时 - 它给出了 Maven 插件错误:无法解析插件 org.apache.maven.plugins:maven-release-plugin:3.1.1

我不确定是什么问题。我尝试在无效缓存后重新启动 IntelliJ,并清除了 .m2 存储库。没有任何帮助。请建议您输入如何解决该问题。

这是示例 pom.xml

<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>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

   
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>11</java.version>
        <maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version>
        <maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
        <maven-release-plugin.version>3.1.1</maven-release-plugin.version>
        <maven-scm-provider-gitexe.version>1.9.5</maven-scm-provider-gitexe.version>
        <junit.platform.version>4.13.0</junit.platform.version>
       
        <logback-json-classic>0.1.5</logback-json-classic>
        <logback-jackson.version>0.1.5</logback-jackson.version>

    </properties>

</project> ```
Run Code Online (Sandbox Code Playgroud)

maven spring-boot spring-boot-maven-plugin java-11

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