gpt4 book ai didi

java - 如何创建可执行的可执行 jar (Maven-Jfoenix-Hibernate-IntelliJ) __ 有人可以使主题解析/关闭吗

转载 作者:行者123 更新时间:2023-11-30 05:46:42 26 4
gpt4 key购买 nike

我尝试从 IntelliJ 中使用 Maven、JFX、JFoenix、Hibernate ... 的项目生成可执行 jar 文件

我尝试了很多解决方案,我们可以在不同的开发者论坛/网站(包括 StackOverflow)中找到这些解决方案。因此没有人为我工作..

我尝试使用以下命令创建可执行 jar 文件:

  • 命令:mvncompile_创建两个不执行任何操作的可执行jar..

  • 创建一个 Artifact :文件 -> 全部保存 -> 项目结构 -> + -> Jar -> 来自模块依赖项 -> 主类:MyMainClass/目录:src\main\javasrc\main\resources (因为他为某人工作来更改此设置。)-> 好的
    构建 -> 构建 Artifact -> 构建重建。此时我有一个可执行文件,但它什么也不执行..

  • 遮光堵塞:(您将在 pom.xml 的代码中看到)给出结果:
Failed to execute goal
org.apache.maven.plugins:maven-shade-plugin:3.2.1:shade (default-cli)
on project GymFormManager: Failed to create shaded artifact, project main
artifact does not exist.

pom.xml,我只取重要部分,因为它太大了:

...

<modelVersion>4.0.0</modelVersion>
<groupId>com.gymform.maven</groupId>
<artifactId>GymFormManager</artifactId>
<version>1.0-SNAPSHOT</version>

</dependencies>
...
<!-- Try To Create Executable Jar -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>1.1</version>
</dependency>
</dependencies>

<build>
<plugins>

...

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.gymformmanager.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.gymformmanager.Main</mainClass>
</transformer>
</transformers>

<!-- I have tried with and without hadedArtifact --> <shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>GymFormManager</shadedClassifierName> <!-- Any name that makes sense -->
</configuration>
</execution>
</executions>
</plugin>

目前,我有三个可执行 jar,它们什么都不做:

The first executable The path of the first executable

The second and third executable Their paths

编辑:按照 Jony 的建议后,我遇到了这个错误:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/gymformmanager/Main has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runt
ime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

我用这个解决了版本问题: Windows ignores JAVA_HOME: how to set JDK as default?

Error: JavaFX runtime components are missing, and are required to run this application

虽然我的 pom.xml 中有依赖项:

 <dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>

最佳答案

你可以尝试用maven组装一个所谓的fatjar:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.gymformmanager.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>assemble-all</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>

这将在您的输出目录中创建一个名为 GymFormManager-jar-with-dependency.jar 的附加 jar 文件。您可以使用以下命令运行它:

java -jar GymFormManager-jar-with-dependencies.jar

关于java - 如何创建可执行的可执行 jar (Maven-Jfoenix-Hibernate-IntelliJ) __ 有人可以使主题解析/关闭吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54708902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com