在本教程之后,我一直在尝试使用maven和maven-shade-plugin为我的JavaFX项目创建一个jar。https://www.youtube.com/watch?v=EyYb0GmtEX4.
我可以创建jar文件,但当我运行它时,它会给我一个错误:<代码>错误:无法找到或加载主类com。实例请工作。通用域名格式。实例请工作。Main\u 1
<代码>原因:java。lang.ClassNotFoundException:com。实例请工作。通用域名格式。实例请工作。Main\u 1
我已经尝试添加java——模块路径/路径/到/java fx libs/——添加模块javafx。控件,javafx。fxml MyMainClass到vm选项,但它只是将错误更改为错误:无法找到或加载主类Java。此外,我还有第二个主文件,它运行扩展应用程序的第一个主文件。
我正在使用IntelliJ,并通过IntelliJ与Maven的内置JavaFX项目创建了我的项目。我可以正常运行我的项目,它工作得很好,但当我尝试运行通过Maven的shade插件生成的shaded jar时,我会遇到这些错误。
这是我的第二个主文件
package com.example.pleasework;
public class Main_1 {
public static void main(String[] args) {
HelloApplication.main(args);
}
}
这是我的第一个主文件
package com.example.pleasework;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
public class HelloApplication extends Application {
@Override
public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 320, 240);
stage.setTitle("Hello!");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
这是我的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>PleaseWork</artifactId>
<version>1.0-SNAPSHOT</version>
<name>PleaseWork</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>5.8.1</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11.0.2</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11.0.2</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.0.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.opencsv/opencsv -->
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.5.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.8</version>
<executions>
<execution>
<!-- Default configuration for running with: mvn clean javafx:run -->
<id>default-cli</id>
<configuration>
<mainClass>com.example.pleasework/com.example.pleasework.Main_1</mainClass>
<launcher>app</launcher>
<jlinkZipName>app</jlinkZipName>
<jlinkImageName>app</jlinkImageName>
<noManPages>true</noManPages>
<stripDebug>true</stripDebug>
<noHeaderFiles>true</noHeaderFiles>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<id>default-compile</id>
<configuration>
<compilerArgument>-proc:none</compilerArgument>
<includes>
<include>fun/n/learn/annotation/LogMeCustomAnnotationProcessor.java</include>
<!--include dependencies required for LogMeCustomAnnotationProcessor -->
</includes>
</configuration>
</execution>
<execution>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<transformers>
<transformer implementation=
"org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.example.pleasework/com.example.pleasework.Main_1</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
错误消息指示您必须指定没有模块名称的主类。只需在那里使用完全限定的类名。完全限定的从不包含斜杠,因为它不是路径名。因此,在您的示例中,完全限定的类名包括周围的XML标记(主类在pom.XML中使用了两次,在这两种情况下都必须更正):
<mainClass>com.example.pleasework.Main_1</mainClass>
您可以自己构建完全限定的类名:使用您要引用的类的包
声明中的字符串,添加一个点,然后从类声明中写入类名,瞧,您就有了完全限定的类名。
我用intellij思想做了一个maven项目,但是当我将项目构建到jar时,jar中的manifest.mf不是我的,看起来像我的maven lib的manifest.mf
我正在阅读有关C中线程的教程并测试了以下代码: 我试图使用gcc和g编译此代码,但我总是遇到编译错误。 使用gcc-pthread thread_test.c: /tmp/ccmpQLyp。o: 在函数std::cout'thread_test.cpp: 你能帮忙吗?我必须做些什么才能让这段代码在Linux和Windows上运行吗?
我正在使用SBT(在IntelliJ IDEA中)构建一个简单的Scala项目。 我想知道什么是最简单的方法来建立一个Uber JAR文件(又名胖JAR,超级JAR)。 我当前使用的是SBT,但当我将JAR文件提交到Apache Spark时,我得到以下错误: 线程“main”java.lang.SecurityException中的异常:清单主属性的签名文件摘要无效 或在编译期间出现此错误: j
我正在使用org.codehaus.mojo exec-maven-plugin通过我的pom.xml项目执行一个可执行的。jar文件。目前这不起作用,我不确定为什么。当我指定CommandLineArgs时会发生错误。 我的插件如下所示:
我试图读取xsd文件以验证模式。 我的架构位于位置 我的类读取这个文件也在< code > x/y/z/read schema . Java 中 它们都装在我的罐子里。 我试图在中读取这个文件,如下所示,其中名称是但url返回为null? 我做错什么了吗?
我已经安装了intellij,并且试图打开一个新的javafx,但是我无法运行它(即使是基本的默认的,应该只是打开一个简单的窗口)。我使用的是JDK11(我必须),所以我下载了javafx,就像本文中所说的那样: 错误:JavaFX运行时组件丢失,而使用JDK 11运行此应用程序需要JavaFX运行时组件 但我得到了这个错误 如果我试着在溶液中做这一行 然后在run->edit configura