染指余忆 2024-03-14 17:39 采纳率: 96.3%
浏览 36
已结题

javafx如何使用idea打包成jar并在无javafx环境运行

javafx如何使用idea打包成jar并在无javafx环境运行

package org.example.javafx1;

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();
    }
}

  • 写回答

3条回答 默认 最新

  • 关注

    染指余忆 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    要使用Idea打包JavaFX项目为可执行的Jar文件,并在没有JavaFX环境的机器上运行,可以按照以下步骤进行操作:

    1. 确保你的Idea已经安装了JavaFX插件。如果没有安装,可以通过Idea的插件管理器安装。

    2. 在Idea中的项目设置中,将JDK设置为包含JavaFX的版本。

    3. **在项目的模块设置中,添加JavaFX库。**打开项目的模块设置,选择依赖项选项卡,点击"+"按钮,然后选择"Library/javafx-sdk-xx/lib"目录,其中xx是JavaFX SDK的版本号。

    4. **修改项目的运行配置。**在Idea中,编辑项目的运行配置,将--module参数设置为你的主类名称。

    5. **使用Idea打包项目为可执行的Jar文件。**在Idea的菜单栏中,选择"Build" -> "Build Artifacts" -> "Build"。这将会在项目的输出目录中生成一个可执行的Jar文件。

    6. **在没有JavaFX环境的机器上运行Jar文件。**将生成的Jar文件复制到没有JavaFX环境的机器上,然后在命令行中使用以下命令运行Jar文件:

      java --module-path /path/to/javafx-sdk-xx/lib --add-modules javafx.controls,javafx.fxml -jar your-jar-file.jar
      

      其中/path/to/javafx-sdk-xx是JavaFX SDK的安装路径,your-jar-file.jar是你的Jar文件的名称。

    这样,你的JavaFX应用程序就可以在没有JavaFX环境的机器上运行了。

    这是修改后的代码示例:

    package org.example.javafx1;
    
    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();
            fxmlLoader.setLocation(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();
        }
    }
    

    希望能帮助到你!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月18日
  • 已采纳回答 9月10日
  • 创建了问题 3月14日

悬赏问题

  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令