在 Debian 上进行 Java 图形界面开发
一 环境准备
sudo apt update && sudo apt install openjdk-17-jdksudo apt install default-jdkjava -version、javac -versionreadlink -f /usr/bin/java | sed "s:bin/java::"echo 'JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"' | sudo tee -a /etc/environmentsource /etc/environment二 选择 GUI 框架
三 快速上手示例
import javax.swing.*;
public class SwingExample {
public static void main(String[] args) {
JFrame f = new JFrame("Swing 示例");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300, 200);
f.add(new JLabel("Hello, Swing!"));
f.setVisible(true);
}
}
javac SwingExample.java && java SwingExamplesudo apt install openjfximport javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class JavaFXExample extends Application {
public static void main(String[] args) { launch(args); }
@Override public void start(Stage stage) {
Label lbl = new Label("Hello, JavaFX!");
stage.setScene(new Scene(new StackPane(lbl), 300, 200));
stage.setTitle("JavaFX 示例");
stage.show();
}
}
javac --module-path /usr/share/openjfx/lib --add-modules javafx.controls,javafx.fxml JavaFXExample.java
java --module-path /usr/share/openjfx/lib --add-modules javafx.controls,javafx.fxml JavaFXExample
--module-path 指向 SDK 的 lib 目录。四 构建与依赖管理
pom.xml 的 <dependencies>):<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>17.0.1</version>
</dependency>
mvn clean package;运行生成的包或按项目配置执行。gradle build 构建。五 调试 打包与分发
jar --create --file app.jar -C bin .java -jar app.jarjpackage --name MyApp --input lib --main-jar app.jar --main-class com.example.Main
sudo apt install ./MyApp.deb
sudo apt install xvfb
xvfb-run -a java --module-path /usr/share/openjfx/lib --add-modules javafx.controls,javafx.fxml JavaFXExample
update-alternatives 切换 java/javac,并统一 JAVA_HOME 指向所选 JDK。