Notez comment exécuter JavaFX "pour le moment" avec VSCode + Gradle. Il a été fait en copiant partout la sagesse de nos prédécesseurs. Merci à tous nos ancêtres.
Les outils et l'environnement d'exécution utilisés sont les suivants.
De plus, comme nous nous concentrerons sur la partie titre, nous omettons l'installation d'outils individuels.
Créez un répertoire de projet et exécutez gradle init (en supposant que vous ayez le chemin d'accès à la commande gradle). Il sera complété si vous répondez aux options comme suit.
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$
Ajoutez le répertoire sandbox02 créé ci-dessus à l'espace de travail VSCode, puis exécutez la version par défaut. Cependant, VS Code, qui ne sait pas quoi faire, me demande de créer une configuration (voir la figure ci-dessous). Cliquez sur "Configurer la tâche de construction ..." affiché au centre de l'écran (si vous traduisez du code VS en japonais, veuillez le traduire dans votre cerveau comme il convient).
Sélectionnez Autre parmi les options. Ensuite, tasks.json qui affiche simplement Hello sera créé sous le dossier .vscode du projet. Copiez et collez ce qui suit complètement là-bas.
{
"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"
}
]
}
Après l'enregistrement, sélectionnez Terminal> Run Buld Task ... dans le menu VS Code, et la construction s'exécutera lentement sur l'écran shell ci-dessous, et "Hello World" dans l'application console préparée par Gradle au moment de l'initialisation sera affiché. Si vous regardez tasks.json, vous pouvez voir que l'exécution gradle est la valeur par défaut pour les tâches de génération.
C'est très grossier, mais dans VSCode, remplacez complètement src / main / java / (chemin du package) /App.java avec le code suivant et renommez le fichier en HelloWorld.java. De plus, le squelette de test sous src / test provoquera également une erreur (puisque je n'écrirai pas le code de test ici), supprimez-le.
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();
}
}
De plus, ce code a été emprunté à la page suivante d'Oracle dans le monde. https://docs.oracle.com/javafx/2/get_started/hello_world.htm
Tout d'abord, remplacez complètement build.gradle comme suit et enregistrez-le. Veuillez réécrire le mainClassName selon votre convenance. Si vous construisez (exécution graduelle) jusqu'à ce point, l'application JavaFX sera lancée. L'image de l'application est à la fin.
/*
* 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) }
}
Ensuite, créez un fichier launch.json dans le dossier .vscode (le dossier dans lequel tasks.json a été créé précédemment) et collez ce qui suit comme contenu. Veuillez réécrire le nom de la classe principale, le nom du package et le chemin de la bibliothèque openjfx selon votre convenance. Désormais, lorsque vous redémarrez VSCode, la vague rouge soulignée de l'identifiant qui n'était pas reconnaissable sur la source devrait disparaître.
{
// 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"
}
]
}
C'est une collection d'autres articles Qiita, et c'est juste "Marutto Copipe". Est-ce bon pour les gens qui veulent penser aux choses après avoir déménagé? J'espère que vous vous y habituerez! : souriant:
== END ==
Recommended Posts