在Ubuntu上进行Java图形界面开发前,需先安装JDK(Java Development Kit)。推荐使用OpenJDK(开源版本),兼容性好且易于管理。
打开终端,执行以下命令安装OpenJDK 11(或更高版本,支持JavaFX):
sudo apt update
sudo apt install openjdk-11-jdk
安装完成后,验证JDK是否安装成功:
java -version # 查看Java运行时版本
javac -version # 查看Java编译器版本
若输出类似openjdk version "11.0.xx"
的信息,则表示安装成功。
为方便在终端任意路径使用Java命令,可配置JAVA_HOME环境变量。编辑~/.bashrc
文件(用户级配置):
nano ~/.bashrc
在文件末尾添加以下内容(根据实际JDK安装路径调整):
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # OpenJDK 11默认路径
export PATH=$JAVA_HOME/bin:$PATH
保存文件后,执行source ~/.bashrc
使配置生效。可通过echo $JAVA_HOME
验证变量是否设置成功。
IDE能显著提升开发效率,推荐以下两款适合Java图形界面开发的IDE:
./bin/idea.sh
启动。eclipse
启动。JavaFX是Java的现代图形界面框架,支持CSS样式、FXML布局(类似HTML)、动画等功能,适合开发富客户端应用。
从JDK 11开始,JavaFX不再内置于JDK,需单独下载。访问Gluon官网下载适用于Linux的JavaFX SDK(选择与JDK版本匹配的版本,如JavaFX 17)。解压到指定目录(如~/javafx-sdk-17
)。
编辑~/.bashrc
文件,添加JavaFX库路径:
export PATH_TO_FX=~/javafx-sdk-17/lib # 替换为实际解压路径
执行source ~/.bashrc
使配置生效。
创建一个简单的JavaFX程序(如HelloJavaFX.java
):
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloJavaFX extends Application {
@Override
public void start(Stage primaryStage) {
Label label = new Label("Hello, JavaFX!");
StackPane root = new StackPane(label);
Scene scene = new Scene(root, 400, 300);
primaryStage.setTitle("JavaFX First App");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
编译并运行程序(需指定JavaFX模块路径):
javac --module-path $PATH_TO_FX --add-modules javafx.controls HelloJavaFX.java
java --module-path $PATH_TO_FX --add-modules javafx.controls HelloJavaFX
运行后,将弹出一个显示“Hello, JavaFX!”的窗口。
Swing是Java的传统图形界面库,适合开发轻量级桌面应用,兼容性好但界面风格较老旧。
创建一个简单的Swing程序(如HelloSwing.java
):
import javax.swing.*;
public class HelloSwing {
public static void main(String[] args) {
// 确保GUI操作在事件调度线程(EDT)中执行
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("Hello Swing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setLocationRelativeTo(null); // 居中显示
JLabel label = new JLabel("Hello, Swing!", JLabel.CENTER);
frame.getContentPane().add(label);
frame.setVisible(true);
});
}
}
编译并运行程序:
javac HelloSwing.java
java HelloSwing
运行后,将弹出一个显示“Hello, Swing!”的窗口。
--add-modules javafx.controls
(及需要的其他模块,如javafx.fxml
),并通过--module-path
指定了JavaFX库路径。SwingUtilities.invokeLater
)。通过以上步骤,即可在Ubuntu上完成Java图形界面开发。根据项目需求选择JavaFX(现代、功能丰富)或Swing(传统、轻量),结合IDE提升开发效率。