Notieren Sie sich, wie JavaFX "vorerst" mit VSCode + Gradle ausgeführt wird. Es wurde gemacht, indem die Weisheit unserer Vorgänger überall kopiert wurde. Vielen Dank an alle unsere Vorfahren.
Die verwendeten Tools und Ausführungsumgebungen sind wie folgt.
Da wir uns auf den Titelteil konzentrieren, werden wir auch die Installation einzelner Werkzeuge weglassen.
Erstellen Sie ein Projektverzeichnis und führen Sie gradle init aus (vorausgesetzt, Sie haben den Pfad zum Befehl gradle). Sie können es vervollständigen, indem Sie die Optionen wie folgt beantworten.
ximia@thinkpad:~/dev/sandbox02$ gradle init
Select type of project to generate:
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4] 2
Select implementation language:
1: C++
2: Groovy
3: Java
4: Kotlin
5: Swift
Enter selection (default: Java) [1..5] 3
Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Groovy) [1..2] 1
Select test framework:
1: JUnit 4 VSCode
2: TestNG
3: Spock
4: JUnit Jupiter
Enter selection (default: JUnit 4) [1..4] 1
Project name (default: sandbox02):
Source package (default: sandbox02): me.osa2.java.sandbox02
> Task :init
Get more help with your project: https://docs.gradle.org/6.1.1/userguide/tutorial_java_projects.html
BUILD SUCCESSFUL in 42s
2 actionable tasks: 2 executed
ximia@thinkpad:~/dev/sandbox02$
Fügen Sie das oben erstellte Verzeichnis sandbox02 zum VS Code-Arbeitsbereich hinzu und führen Sie dann die Standarderstellung aus. VS Code, der nicht weiß, was zu tun ist, fordert mich jedoch auf, eine Konfiguration zu erstellen (siehe Abbildung unten). Klicken Sie in der Mitte des Bildschirms auf "Build-Aufgabe konfigurieren ..." (Wenn Sie VS-Code ins Japanische übersetzen, übersetzen Sie ihn bitte in Ihrem Gehirn).
Wählen Sie Andere aus den Optionen. Dann wird die Datei task.json, die nur Hallo anzeigt, im Ordner .vscode des Projekts erstellt. Kopieren Sie das Folgende und fügen Sie es dort vollständig ein.
{
"version": "1.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "./gradlew build"
},
{
"label": "run",
"type": "shell",
"command": "./gradlew run",
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "clean",
"type": "shell",
"command": "./gradlew clean"
},
{
"label": "check",
"type": "shell",
"command": "./gradlew check"
},
{
"label": "create-jar",
"type": "shell",
"command": "./gradlew jar"
}
]
}
Wählen Sie nach dem Speichern Terminal> Run Buld Task ... aus dem VS Code-Menü. Der Build wird langsam auf dem Shell-Bildschirm unten ausgeführt und "Hello World" in der Konsolen-App, die Gradle zum Zeitpunkt der Init vorbereitet hat, wird angezeigt. Wenn Sie sich task.json ansehen, können Sie sehen, dass Gradle Run die Standardeinstellung für Build-Tasks ist.
Es ist sehr grob, aber in VSCode überschreiben Sie src / main / java / (Paketpfad) /App.java vollständig mit dem folgenden Code und benennen Sie die Datei in HelloWorld.java um. Außerdem verursacht das Testgerüst unter src / test ebenfalls einen Fehler (da ich den Testcode hier nicht schreibe). Löschen Sie ihn daher.
package your.package.path;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
}
Darüber hinaus wurde dieser Code von der folgenden Seite von Oracle in der Welt ausgeliehen. https://docs.oracle.com/javafx/2/get_started/hello_world.htm
Ersetzen Sie zuerst build.gradle wie folgt vollständig und speichern Sie es. Bitte schreiben Sie den mainClassName nach Ihren Wünschen um. Wenn Sie bis zu diesem Punkt erstellen (Gradle Run), wird die JavaFX-App gestartet. Das Bild der App ist am Ende.
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java project to get you started.
* For more details take a look at the Java Quickstart chapter in the Gradle
* User Manual available at https://docs.gradle.org/6.1.1/userguide/tutorial_java_projects.html
*/
plugins {
id 'java'
id 'application'
id 'eclipse' // for auto-completion enabled .classpath.
id 'org.openjfx.javafxplugin' version '0.0.8'
}
repositories {
jcenter()
}
javafx {
version = "11"
modules = [ 'javafx.controls']
}
dependencies {
// This dependency is used by the application.
implementation 'com.google.guava:guava:28.1-jre'
// Use JUnit test framework
testImplementation 'junit:junit:4.12'
// Making Runnable Jar
implementation "com.github.jengelman.gradle.plugins:shadow:5.1.0"
}
mainClassName = 'me.osa2.java.sandbox02.HelloWorld'
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
jar {
manifest {
attributes ('Main-Class': mainClassName, "Implementation-Title": "Gradle",
"Implementation-Version": 1)
}
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
from configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
Erstellen Sie als Nächstes eine Datei launch.json im Ordner .vscode (dem Ordner, in dem task.json zuvor erstellt wurde) und fügen Sie Folgendes als Inhalt ein. Bitte schreiben Sie den Namen der Hauptklasse, den Paketnamen und den Pfad der openjfx-Bibliothek nach Ihren Wünschen neu. Wenn Sie VSCode neu starten, sollte die rote Wellenunterstreichung des Bezeichners, der in der Quelle nicht erkennbar war, verschwinden.
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Debug (Launch) - Current File",
"request": "launch",
"mainClass": "${file}"
},
{
"type": "java",
"name": "Debug (Launch)-HelloWorld<sandbox02>",
"request": "launch",
"mainClass": "me.osa2.java.sandbox02.HelloWOrld",
"projectName": "hello",
"vmArgs": "--module-path /home/ximia/libs/javafx-sdk-11.0.2/lib --add-modules javafx.controls,javafx.fxml"
}
]
}
Es ist eine Sammlung anderer Qiita-Artikel und nur "Marutto Copipe". Ist es gut für Leute, die nach dem Umzug über Dinge nachdenken wollen? Ich hoffe du gewöhnst dich daran! : grinsend:
== END ==
Recommended Posts