Jusqu'à ce que vous exécutiez Hello World of JavaFX avec VSCode + Gradle

introduction

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.

0. Environnement

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.

1. Créez un projet avec Gradle

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$ 

2. Ajoutez tasks.json avec VS Code

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).

Screenshot at 2020-02-16 18-51-30.png

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.

3. Remplacez par du code JavaFX

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

4. Passez le chemin de classe pour VSCode et Gradle respectivement

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"
        }
    ]
}

5. Conclusion

C'est une collection d'autres articles Qiita, et c'est juste "Marutto Copipe". app.png 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

Jusqu'à ce que vous exécutiez Hello World of JavaFX avec VSCode + Gradle
Bonjour tout le monde avec VS Code!
En utilisant Gradle avec VSCode, compilez Java → exécutez
Jusqu'à ce que vous installiez Gradle et sortiez "Hello World"
Hello World avec SpringBoot / Gradle
Jusqu'à "Hello World" avec Spring Boot
Bonjour tout le monde avec Kotlin et JavaFX
Développement Java avec Codenvy: Hello World! Run
Hello World sur Mac VSCode Java
(IntelliJ + gradle) Hello World avec Spring Boot
Hello World avec JavaFX 11 (OpenJFX) de Liberica JDK 11
Exécutez JSP Hello World avec Tomcat sur Docker
Jusqu'à ce que vous exécutiez l'exemple de code Apache Velocity
Essayez d'afficher Hello World avec Spring + Gradle
Automatisation dérivée du profil de l'authentification des artefacts de code avec Gradle
Lombok avec VS Code
Créer un environnement de débogage Ruby avec VS Code de Windows 10
La procédure que j'ai effectuée lorsque j'ai préparé l'environnement pour gradle + Java avec VS Code (Windows 10)
Créer Restapi avec Spring Boot (jusqu'à l'exécution de l'application)
Hello World avec Micronaut
Hello World avec Spring Boot
Gestion Docker avec VS Code
Bonjour tout le monde avec Spring Boot!
Formater Ruby avec VS Code
java bonjour le monde, compilez, exécutez
Hello World avec Spring Boot
Bonjour tout le monde! Avec Asakusa Framework!
Résumé des procédures de développement dans un conteneur Docker avec VS Code
Essayez HelloWorld avec la configuration minimale de Heroku Java spring-boot
Programmation Spring Boot avec VS Code
Hello World avec Docker et langage C
Construire Java avec Mac vs Code
(Intellij) Hello World avec Spring Boot
Hello World avec GlassFish 5.1 + Servlet + JSP
Créez un PDF avec itext7 ~ HelloWorld ~
Premiers pas avec Docker avec VS Code
"Hello world" pour ImageJ avec Eclipse
Hello World avec GWT 2.8.2 et Maven
Bonjour tout le monde en Java et Gradle
Développement d'applications Web Spring5 MVC avec Visual Studio Code Hello World Creation
Développement d'applications Web Spring Boot2 avec création de Visual Studio Code Hello World
Essayez d'écrire "Hello, World" avec une combinaison de plusieurs langues et bibliothèques