我的模块化 JavaFX 应用程序有问题。我创建了一个 JavaFX 项目并添加了 JavaFX 库和 JavaFX 模块得到认可。但是,我不断收到这些错误消息:
Run Code Online (Sandbox Code Playgroud)Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.controls not found
完整设置的图像在此附上:
编辑:
这是所有错误消息:
/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 选项:
但是,我仍然收到此错误消息。
我是Spring Boot的新手,我正在尝试开发一个应用程序,以便以后在AWS beanstalk上部署它.我使用java 11启动了项目,但后来我发现AWS只支持java 8.是否可以将pom.xml中的"maven.compiler.target"设置为1.8以使其正常运行?我是否必须使用Java 1.8进行开发和编译?我想使用新的Java功能和库.如果有人有同样的问题,我想有一些意见.谢谢.光盘
我编写了以下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调用.
为什么它不起作用,我该怎么做呢?
在通过 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项目用于测试。有关更多详细信息,请参阅项目自述文件。
谷歌揭示了 jdk11.0.2 中的一个错误,但我升级到了 jdk11.0.3,这个错误对我来说仍然存在。重现步骤
git clone https://github.com/deanhiller/webpieces.git"org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-11.0.3.jdk/Contents/Home"以~/.gradle/gradle.properties将 jdk 设置为 11.0.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
请注意,这会由于某种原因修复它: …
我正在尝试将代码库升级到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) 我正在使用 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,我希望这是最后的手段。
我正在尝试使用 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 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) 我已经将 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) java-11 ×10
java ×7
maven ×2
apache-fop ×1
cookies ×1
http ×1
httpclient ×1
javafx-11 ×1
jboss-eap-7 ×1
openjfx ×1
oraclelinux ×1
powermockito ×1
spring ×1
spring-boot ×1
ssl ×1