项目名称-JavaFX
模块-info.java
module JavaFX {
requires javafx.fxml;
requires javafx.controls;
requires java.desktop;
opens sample;
Run Code Online (Sandbox Code Playgroud)
}
控制器.java
package sample;
import javafx.fxml.FXML;
import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class Controller {
@FXML
public void handleClick(){
try{
Desktop.getDesktop().browse(new URI("http://www.javafx.com"));
} catch (URISyntaxException | IOException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到错误: 错误:(1, 1) java: 模块 JavaFX 从 java.desktop 和 java.datatransfer 读取包 java.awt
如何解决此问题?
尝试将应用程序更新到 Java 11,在对模块进行分类之后,我以为我已经摆脱了所有的红色错误,现在我得到了一个我以前从未见过的错误:
环顾四周,我看到有人建议可以使用应用程序结构:
或 module-info.java 文件:
任何人都可以看到我需要做什么才能摆脱这种情况吗?
编辑:将 Main.java 移动到名为“main”的包并尝试运行它后出错:
请任何人解释一下为什么允许导入模块描述符文件?
模块描述符文件中的语句的用途是什么import。
import java.util.*;
module superman {
}
Run Code Online (Sandbox Code Playgroud) 我已经被这个错误困扰了几天了。我已经用谷歌搜索了它,并以各种形式尝试了至少十几种不同的建议解决方案......
我的项目运行良好,直到我尝试使用一个名为MonacoFX的特定库,根据 GitHub 页面,该库是用 Java 13 开发的(我在这个项目中使用 Java 16.0.1)。该库的文档非常简单,您可以像使用大多数库一样实例化该库,然后只需使用它即可。但是,一旦我尝试实例化它,我就会在运行时收到此错误:
Exception in thread "JavaFX Application Thread"
java.lang.IllegalAccessError: superclass access check failed:
class com.sun.javafx.sg.prism.web.NGWebView (in unnamed module @0x1937acaf)
cannot access class com.sun.javafx.sg.prism.NGGroup (in module javafx.graphics)
because module javafx.graphics does not export
com.sun.javafx.sg.prism to unnamed module @0x1937acaf
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at eu.mihosoft.monacofx@0.0.7/eu.mihosoft.monacofx.MonacoFX.<init>(MonacoFX.java:49)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.data.GistFile.<init>(GistFile.java:28)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.data.GistObject.process(GistObject.java:113)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.data.GistObject.<init>(GistObject.java:27)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.github.GitHubApi.setGitHub(GitHubApi.java:31)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.ui.LoginWindowController.authenticate(LoginWindowController.java:39)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.ui.LoginWindow.lambda$new$1(LoginWindow.java:57)
at …Run Code Online (Sandbox Code Playgroud) 我正在将我的项目从 java 8 升级到 java 11。我能够使用 java11、spring 5 依赖项构建和部署它,但是当我将 module-info.java 添加到我的项目中时,我在构建时遇到以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project infrastructure: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile failed.: NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project infrastructure: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956) …Run Code Online (Sandbox Code Playgroud) Java9引入了类似于OSGI和Maven Dependecies的强大模块性.
是否有maven插件能够构建检测maven依赖项的java 9依赖项?
例如,来自
<groupId>com.mycompany.app</groupId>
<artifactId>my-module</artifactId>
....
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.3-jre</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
至
module my-module{
requires com.google.guava;
exports com.mycompany.app;
}
Run Code Online (Sandbox Code Playgroud)
我已经阅读了这篇文章,但它没有那么有用 - 如何表达maven对java ee功能的依赖以转换到Java 9?
我正在开发一个 javafx 项目,我需要module-info.class自己生成文件。所以,我想知道如何正确地做到这一点并使其与 Maven 一起工作。
我在使用 QRCode 生成器库时面临这个问题zxing。我在 java 中找不到带有 module-info.class 文件的任何替代 Qr 生成器库,如果有的话请提及。
我必须这样做,因为我使用 jlink 会抛出“自动模块不能与 jlink 一起使用”错误。
简短的解释会非常有帮助:)
注意:我尝试使用工具注入模块文件,但它抛出错误:无法读取 jar
java ×7
module-info ×7
java-module ×3
javafx ×3
java-11 ×2
maven ×2
java-9 ×1
javafx-11 ×1
jlink ×1
modularity ×1
openjfx ×1
zxing ×1