En la programación diaria, a menudo queremos escribir algunos pequeños programas de utilidad. Como ingeniero de Java, la primera opción es JavaFX. La interfaz GUI es demasiado antigua y, por lo general, no la usaremos. Entonces, ¿cómo empaquetamos el programa JavaFX escrito en ¿un programa exe?¿Tela de lana? Luego, el editor lo guiará sobre cómo usar el software JSmooth para generar programas exe.
1. Escribe un programa JavaFX
El código del programa es el siguiente:
import com.tobiasy.file.filestorage.utils.JavaFxUtils;
import com.tobiasy.file.filestorage.utils.StringUtils;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.stage.Window;
/**
* @author java.xiong
* @date 2023/3/6
*/
public class FeedbackApplication extends Application {
private Stage primary;
private AnchorPane root;
private VBox vBox;
public FeedbackApplication() {
}
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primary = primaryStage;
primary.setResizable(false);
root = new AnchorPane();
Scene scene = new Scene(root);
primary.setTitle("意见反馈");
JavaFxUtils.icon(primary);
vBox = new VBox();
vBox.setPrefWidth(750);
vBox.setPrefHeight(380);
vBox.setPadding(new Insets(30, 50, 20, 50));
Label label = new Label("反馈信息:");
TextArea textArea = new TextArea();
textArea.setPromptText("请留下您宝贵的意见");
textArea.setPrefRowCount(12);
textArea.setPrefColumnCount(40);
HBox.setMargin(textArea, new Insets(0, 0, 0, 10));
HBox hBox = new HBox();
hBox.getChildren().addAll(label, textArea);
vBox.getChildren().addAll(hBox);
root.getChildren().add(vBox);
Button button = new Button("提交");
button.setPrefWidth(80);
button.setPrefHeight(30);
AnchorPane.setTopAnchor(button, 260.0);
AnchorPane.setLeftAnchor(button, 550.0);
root.getChildren().add(button);
button.setOnMouseClicked(event -> {
if (StringUtils.isBlank(textArea.getText())) {
new AlertApplication("反馈信息不能为空!").start(new Stage());
return;
}
// 业务逻辑
Window window = root.getScene().getWindow();
Stage st = (Stage) window;
st.close();
});
primary.setScene(scene);
primary.setWidth(750);
primary.setHeight(380);
primary.show();
root.setOnKeyPressed(event -> {
if (KeyCode.ESCAPE.equals(event.getCode())) {
primary.close();
}
});
}
}
2. Empaquetar el programa JavaFX
1. Configurar el complemento de empaquetado
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<!--给jar包起的别名-->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<!--添加项目中主类-->
<mainClass>com.xxx.FeedbackApplication</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
2. Use el comando maven para empaquetar
mvn clean package -Dmaven.test.skip=true
3. Embalaje completado
Verifique en el directorio de destino, si aparece xxx-jar-with-dependencies.jar, ¡el empaquetado se realizó correctamente!
Crear carpetas de acuerdo con los programas, como comentarios
Copie el paquete jar empaquetado en esta carpeta
3. Descarga el software de empaquetado JSmooth
1. Descarga el software JSmooth
Cuarto, use JSmooth para generar EXE
1. Después de abrir JSmooth, la interfaz principal es la siguiente:
2. Haga clic en el esqueleto de la izquierda
Selección de Windows Wrapper: Windowed Wrapper, el atributo esqueleto verifique el primero: inicie la aplicación Java en el proceso EXE:
3. Seleccione el archivo ejecutable a la izquierda
Archivo binario configurable: ingrese xxx.exe, que es el nombre del archivo exe generado, por ejemplo el mío: feedback.exe
Ícono ejecutable: ingrese el directorio del archivo del ícono (el directorio es preferiblemente el directorio del mismo nivel o el subdirectorio del mismo nivel), o no configurado
4. Haga clic en la aplicación a la izquierda
Ingrese el nombre de clase completo para la clase principal, configure los parámetros del programa (si no, no lo configure) y elija incrustar el paquete jar
5. Haga clic en la selección de JVM a la izquierda
1) Establecer la versión de Java
2) Seleccione el directorio jdk y copie jre en la carpeta creada anteriormente, y configure el paquete de enlace JVM en JSmooth en el directorio jre copiado. La razón principal aquí es permitir que el programa se conecte a un JRE independiente, no en cada computadora Ambos necesitan para instalar JRE
6. Haga clic en configuración de JVM a la izquierda
Si no hay requisitos especiales aquí, omita directamente por defecto
En este punto, puede guardar la información de configuración actual en el directorio de la nueva carpeta y luego puede abrirla y empaquetarla directamente.
7. Generar archivo exe
Haga clic en el siguiente icono para generar el archivo ejecutable exe
Aparece el siguiente cuadro de aviso, la generación es exitosa
Regrese al directorio de la carpeta y podrá ver el archivo exe generado en la carpeta en este momento:
Haga doble clic para abrir y probar:
Muy bien, ese es el final de la clase de hoy, ¡salir de la clase ha terminado!