亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法調試為什么我的 JavaFX 項目的可執行 JAR 在我的計算機上運行而不在其他計

有沒有辦法調試為什么我的 JavaFX 項目的可執行 JAR 在我的計算機上運行而不在其他計

桃花長相依 2022-12-21 15:11:07
我導出了一個 JavaFX2 項目的 Jar。它工作正常,但是當我在另一臺機器上運行它時,會有一個 classDefNotFoundExeption: javafx.application.Application任何提示如何解決這個問題?這是我的清單:Class-Path: .Main-Class: proj.view.Launcher我還編寫了啟動 Swing GUI 的 Launcher,以防找不到 JavaFX。這是我的啟動器類public class Launcher {    public static void main(String[] args) {        try {            Class c = javafx.application.Application.class;            proj.main.App.main(args);        }catch (NoClassDefFoundError e) {            String[] t = {"Swing Backup","Application start Error"};            MainFrame.remote(t);        }    }}
查看完整描述

4 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

其他計算機在不包含 JavaFX 的 Java 安裝上運行。它可以在您的機器上運行,因為您確實安裝了 JavaFX。


要測試是否javafx.application.Application可用,您需要使用反射,即


boolean hasJavaFX;

try {

    Class.forName("javafx.application.Application");

    hasJavaFX = true;

} catch (ClassNotFoundException e) {

    hasJavaFX = false;

}

if (hasJavaFX) {

    MainFrame.remote(new String[] {"Swing Backup","Application start Error"});

} else {

    proj.main.App.main(args);

}


查看完整回答
反對 回復 2022-12-21
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

我想通了:它是指向 JDK10 bin 的用戶路徑變量。

我們改變了路徑。現在它適用于“java -jar programm.jar”但不適用于“java programm.jar”

但不是通過常規單擊文件。但是我們寫了一個批處理文件,用“java -jar”啟動應用程序,它工作正常。

有沒有人解釋這種行為?


查看完整回答
反對 回復 2022-12-21
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

當您在 jdk 高于 11 的機器上運行時,您可能會得到classDefNotFoundExeption: javafx.application.Application 。


oracle 已經從 JDK 11 中刪除了 javaFX,因此需要提供對 javafx-controls 模塊的依賴。


`<dependency>

    <groupId>org.openjfx</groupId>

    <artifactId>javafx-controls</artifactId>

    <version>12-ea+9</version>

</dependency>`

將此添加到您的依賴項中。


https://openjfx.io/


查看完整回答
反對 回復 2022-12-21
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

對我來說,如果相同的代碼在那些機器上通過 IDE 運行,那么它看起來像是可運行的 jar 問題。您可以嘗試使用 maven assembly 插件來打包您的 jar。


Apache Maven Assembly Plugin 允許用戶將項目輸出及其依賴項、模塊、站點文檔和其他文件聚合到一個可運行的包中。


<plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-assembly-plugin</artifactId>

    <executions>

        <execution>

            <phase>package</phase>

            <goals>

                <goal>single</goal>

            </goals>

            <configuration>

                <archive>

                <manifest>

                    <mainClass>

                        package.your_main_class

                    </mainClass>

                </manifest>

                </archive>

                <descriptorRefs>

                    <descriptorRef>jar-with-dependencies</descriptorRef>

                </descriptorRefs>

            </configuration>

        </execution>

    </executions>

</plugin>


查看完整回答
反對 回復 2022-12-21
  • 4 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號