java.lang.IllegalArgumentException: plexus.container.default: 无效的模块名称: 'default' 不是 Java 标识符



当我尝试使用脚本 bash 启动我的 jar 时,我遇到了这个问题:

完整问题 :

Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for C:UsersaposkDesktopTwitter_App_Win_Versionappressourceslibplexus-container-default-1.0-alpha-9-stable-1.jar
Caused by: java.lang.IllegalArgumentException: plexus.container.default: Invalid module name: 'default' is not a Java identifier

脚本狂欢

@echo off
::apt-get install openjfx
SET JAVA_HOME=C:UsersaposkDesktopTwitter_App_Win_Versionjdk-13.0.1
SET PATH=%JAVA_HOME%bin;%PATH%
java -version
java -jar --module-path "C:UsersaposkDesktopTwitter_App_Win_Versionappressourceslib" --add-modules=javafx.controls,javafx.fxml "C:UsersaposkDesktopTwitter_App_Win_Versionappressourcespip-0.0.1-SNAPSHOT.jar"
pause

我们正在开发JDK 13,但也在JDK上工作-->通过导入 java.net 来请求Http的原因。

我在Win-64bits et with maven的日食上工作。网络上的其他解决方案无法解决我的问题

带着解决方案回来!

如果你需要用比 JAVA 8 更新的 JFX 运行你的.jar,你需要用 jdk 设置你的系统,但你还需要创建一个新的主类而不扩展 APplication。在本课程中,您将使用公共 void 方法运行您的 mainApp,并且您需要在 pom 中添加一些参数.xml (feg(

<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>2.4.1</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<shadedArtifactAttached>true</shadedArtifactAttached>
							<shadedClassifierName>project/classifier</shadedClassifierName>
							<outputFile>shade${project.artifactId}.jar</outputFile>
							<transformers>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>fr.tse.fise2.pip.graphic.Main</mainClass>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>

您还需要在pom中为java fx配置一些模块.xml

<dependency>
			<groupId>org.openjfx</groupId>
			<artifactId>javafx-base</artifactId>
			<version>13</version>
		</dependency>
		<dependency>
			<groupId>org.openjfx</groupId>
			<artifactId>javafx-controls</artifactId>
			<version>13</version>
		</dependency>
		<dependency>
			<groupId>org.openjfx</groupId>
			<artifactId>javafx-graphics </artifactId>
			<version>13</version>
			<classifier>mac</classifier>
		</dependency>
		<dependency>
			<groupId>org.openjfx</groupId>
			<artifactId>javafx-graphics </artifactId>
			<version>13</version>
			<classifier>linux</classifier>
		</dependency>
		<dependency>
			<groupId>org.openjfx</groupId>
			<artifactId>javafx-graphics </artifactId>
			<version>13</version>
			<classifier>win</classifier>
		</dependency>
		<dependency>
			<groupId>org.openjfx</groupId>
			<artifactId>javafx-fxml</artifactId>
			<version>13</version>
		</dependency>
		<dependency>
			<groupId>org.openjfx</groupId>
			<artifactId>javafx-web</artifactId>
			<version>13</version>
		</dependency>

	<dependency>
			<groupId>org.openjfx</groupId>
			<artifactId>javafx-controls</artifactId>
			<version>13</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-fxml -->
		<dependency>
			<groupId>org.openjfx</groupId>
			<artifactId>javafx-fxml</artifactId>
			<version>13</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.jfoenix/jfoenix -->
		<dependency>

现在你可以用cmd java -jar文件名运行你的jar.jar在你的jar的正确位置

我的项目适用于 JavaFx 和 JAVA 11

由卡米尔帮助

最新更新