diff --git a/java/.vscode/launch.json b/java/.vscode/launch.json
new file mode 100644
index 0000000000000000000000000000000000000000..282a758371347f5e5ab603ccefdcbfa0bef02143
--- /dev/null
+++ b/java/.vscode/launch.json
@@ -0,0 +1,19 @@
+{
+	"version": "0.2.0",
+	"configurations": [
+		{
+			"vmArgs": "--module-path \"/home/viwrap/javafx-sdk-20.0.1/lib\" --add-modules javafx.controls,javafx.fxml",
+			"type": "java",
+			"name": "Launch Current File",
+			"request": "launch",
+			"mainClass": "${file}"
+		},
+		{
+			"vmArgs": "--module-path \"/home/viwrap/javafx-sdk-20.0.1/lib\" --add-modules javafx.controls,javafx.fxml",
+			"type": "java",
+			"name": "Launch App",
+			"request": "launch",
+			"mainClass": "App"
+		}
+	]
+}
diff --git a/java/.vscode/settings.json b/java/.vscode/settings.json
new file mode 100644
index 0000000000000000000000000000000000000000..c518c92efcea067bd22f8c007ee19f0c2bb12a74
--- /dev/null
+++ b/java/.vscode/settings.json
@@ -0,0 +1,17 @@
+{
+	"java.project.sourcePaths": [
+		"application"
+	],
+	"java.project.outputPath": "bin",
+	"java.project.referencedLibraries": [
+		"lib/**/*.jar",
+		"/home/viwrap/javafx-sdk-20.0.1/lib/javafx.base.jar",
+		"/home/viwrap/javafx-sdk-20.0.1/lib/javafx.controls.jar",
+		"/home/viwrap/javafx-sdk-20.0.1/lib/javafx.fxml.jar",
+		"/home/viwrap/javafx-sdk-20.0.1/lib/javafx.graphics.jar",
+		"/home/viwrap/javafx-sdk-20.0.1/lib/javafx.media.jar",
+		"/home/viwrap/javafx-sdk-20.0.1/lib/javafx.swing.jar",
+		"/home/viwrap/javafx-sdk-20.0.1/lib/javafx.web.jar",
+		"/home/viwrap/javafx-sdk-20.0.1/lib/javafx-swt.ja"
+	]
+}
diff --git a/java/application/App.java b/java/application/App.java
new file mode 100644
index 0000000000000000000000000000000000000000..6aebc1d26df42c37055ded181605bfeca08cce8d
--- /dev/null
+++ b/java/application/App.java
@@ -0,0 +1,18 @@
+import javafx.application.Application;
+import javafx.scene.Scene;
+import javafx.scene.layout.StackPane;
+import javafx.stage.Stage;
+
+public class App extends Application {
+    public static void main(String[] args) throws Exception {
+        launch(args);
+    }
+
+    @Override
+    public void start(Stage primaryStage) throws Exception {
+        StackPane root = new StackPane();
+        primaryStage.setTitle("Hello World");
+        primaryStage.setScene(new Scene(root, 800, 600));
+        primaryStage.show();
+    }
+}