In der täglichen Programmierung möchten wir oft einige kleine Dienstprogramme schreiben. Als Java-Ingenieur ist JavaFX die erste Wahl. Die GUI-Schnittstelle ist zu alt, und im Allgemeinen werden wir sie nicht verwenden. Wie packen wir also das geschriebene JavaFX-Programm hinein? ein Exe-Programm Wolltuch? Dann führt Sie der Editor durch die Verwendung der JSmooth-Software zum Generieren von Exe-Programmen.
1. Schreiben Sie ein JavaFX-Programm
Der Programmcode lautet wie folgt:
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. Packen Sie das JavaFX-Programm
1. Konfigurieren Sie das Paketierungs-Plug-In
<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. Verwenden Sie den maven-Befehl zum Packen
mvn clean package -Dmaven.test.skip=true
3. Verpackung abgeschlossen
Prüfen Sie unter dem Zielverzeichnis, ob xxx-jar-with-dependencies.jar erscheint, das Packen war erfolgreich!
Erstellen Sie Ordner nach Programmen, z. B. Feedback
Kopieren Sie das gepackte JAR-Paket in diesen Ordner
3. Laden Sie die Verpackungssoftware JSmooth herunter
1. Laden Sie die JSmooth-Software herunter
Klicken Sie hier zum Herunterladen
Viertens verwenden Sie JSmooth, um EXE zu generieren
1. Nach dem Öffnen von JSmooth sieht die Hauptschnittstelle wie folgt aus:
2. Klicken Sie links auf das Skelett
Windows-Wrapper-Auswahl: Windowed Wrapper, das Skeleton-Attribut prüfen Sie das erste: Starten Sie die Java-Anwendung im EXE-Prozess:
3. Wählen Sie links die ausführbare Datei aus
Konfigurierbare Binärdatei: Geben Sie xxx.exe ein, das ist der Name der generierten Exe-Datei, zum Beispiel meine: feedback.exe
Ausführbares Symbol: Geben Sie das Symboldateiverzeichnis ein (das Verzeichnis ist vorzugsweise dasselbe Verzeichnis oder ein Unterverzeichnis derselben Ebene) oder nicht festgelegt
4. Klicken Sie links auf die Anwendung
Geben Sie den vollständigen Klassennamen für die Hauptklasse ein, legen Sie die Programmparameter fest (falls nicht, legen Sie sie nicht fest) und wählen Sie die Einbettung des JAR-Pakets aus
5. Klicken Sie links auf die JVM-Auswahl
1) Legen Sie die Java-Version fest
2) Wählen Sie das jdk-Verzeichnis und kopieren Sie jre in den oben erstellten Ordner und legen Sie das JVM-Bindungspaket in JSmooth auf das kopierte jre-Verzeichnis fest.Der Hauptgrund hier ist, das Programm an eine unabhängige JRE anhängen zu lassen, nicht auf jedem Computer, den beide benötigen um JRE zu installieren
6. Klicken Sie links auf JVM-Konfiguration
Wenn hier keine besonderen Anforderungen bestehen, wird standardmäßig direkt übersprungen
An dieser Stelle können Sie die aktuellen Konfigurationsinformationen im neuen Ordnerverzeichnis speichern und sie dann direkt öffnen und packen
7. Exe-Datei generieren
Klicken Sie auf das folgende Symbol, um die ausführbare EXE-Datei zu generieren
Die folgende Abfrage erscheint, die Generierung ist erfolgreich
Kehren Sie zum Ordnerverzeichnis zurück, und Sie können die generierte Exe-Datei zu diesem Zeitpunkt im Ordner sehen:
Zum Öffnen doppelklicken und versuchen:
In Ordnung, das ist das Ende des heutigen Unterrichts, raus aus dem Unterricht ist vorbei!