gpt4 book ai didi

java - 运行时找不到 jfxrt.jar (javafx)

转载 作者:行者123 更新时间:2023-12-01 06:16:56 24 4
gpt4 key购买 nike

我目前只使用 javafx.util 包中的一个类:Pair,因为我不想实现自己的 Pair 类,所以我认为这将是一个合理的解决方案。但是,我正在使用 Intellij,它似乎知道在哪里可以找到 jfxrt.jar,所以我没有注意到这可能会导致问题。

事实上,当我从 Intellij 运行我的 main 时,一切都正确,但是当我尝试使用 Maven 打包应用程序,然后 java -jar myapp.jar 时,应用程序需要 Pair类,但显然没有找到它:

线程“main”java.lang.NoClassDefFoundError中出现异常:javafx/util/Pair

所以我四处寻找,以下是我可以告诉你的:

  • 我的 JDK 是 1.7.0_40,所以我知道 jfxrt.jar 已捆绑,并且我找到了它。
  • Maven 版本:3.1.0
  • 我使用的是 Windows 7
  • 我尝试将 %JAVA_HOME%\lib\添加到我的 PATH 变量中,但没有更改任何内容
  • 我尝试在我的 pom.xml 中添加此系统依赖项:

    <dependencies>
    <dependency>
    <groupId>javafx</groupId>
    <artifactId>jfxrt</artifactId>
    <version>2.0</version>
    <scope>system</scope>
    <systemPath>${java.home}/lib/jfxrt.jar</systemPath>
    </dependency>
    </dependencies>

但它似乎没有改变任何东西,即使听起来很愚蠢,我尝试将 jfxrt.jar 复制/粘贴到我的 jar 内的 lib 文件夹中,令人惊讶的是,它也不起作用......

  • 我像这样使用 maven-assemble-plugin :

    <groupId>minmax</groupId>
    <artifactId>minmax</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
    <dependency>
    <groupId>javafx</groupId>
    <artifactId>jfxrt</artifactId>
    <version>2.0</version>
    <scope>system</scope>
    <systemPath>${java.home}/lib/jfxrt.jar</systemPath>
    </dependency>
    </dependencies>
    <build>
    <plugins>
    <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
    <archive>
    <manifest>
    <mainClass>fr.tlasnier.jeux.puissance4.ihm.Puissance4Main</mainClass>
    </manifest>
    </archive>
    <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    </configuration>
    <executions>
    <execution>
    <id>make-assembly</id> <!-- this is used for inheritance merges -->
    <phase>package</phase> <!-- bind to the packaging phase -->
    <goals>
    <goal>single</goal>
    </goals>
    </execution>
    </executions>
    </plugin>
    </plugins>
    </build>

如果您有任何建议,请继续(可能是我的 Pair 问题的另一种解决方案,不依赖于 javafx ...)

最佳答案

您如何打包您的应用程序?您可以尝试使用 maven-assemble-plugin 进行打包,有一个名为 jar-with-dependencies 的描述符,它将它们添加到最终的 Artifact 中,然后您调用 mvn package。

关于java - 运行时找不到 jfxrt.jar (javafx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22427302/

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