![](/img/trans.png)
[英]What's the location of the JavaFX runtime JAR file, jfxrt.jar, on Linux?
[英]Cannot find jfxrt.jar (javafx) at runtime
我目前僅使用javafx.util程序包中的一個類: Pair
,因為我不想實現自己的Pair類,因此我認為這將是一個合理的解決方案。 但是,我正在與Intellij一起工作,后者似乎知道在哪里可以找到jfxrt.jar,因此我沒有注意到這可能會引起問題。
實際上,當我從Intellij運行我的main時,一切都很好,但是當我嘗試使用Maven和java -jar myapp.jar
打包應用程序時,該應用程序需要Pair類,並且顯然找不到它:
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/util/Pair
所以我四處搜尋,這是我可以告訴你的:
1.7.0_40
,所以我知道jfxrt.jar已捆綁,並找到了它。 3.1.0
我試圖在我的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-assembly-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>
如果您有任何建議,請繼續(可能是不依賴javafx的我的Pair問題的另一種解決方案...)
您如何打包應用程序? 您可以嘗試使用maven-assembly-plugin進行打包,有一個名為jar-with-dependencies的描述符將其添加到最終工件中,然后調用mvn package。
jfxrt.jar不在lib文件夾中...
它在lib / ext /中
例如,jdk1.8.0_211 / jre / lib / ext / jfxrt.jar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.