前提・実現したいこと
現在intellijを使って、デスクトップアプリを制作しようと考えています。
intellijでプロジェクトの作成時に、JavaFXを選択して作成後に
- プロジェクト構造->モジュール->依存関係にJavaFX-sdk-11.0.2/libを追加
- 実行/デバッグ構成->アプリケーション->VMオプションの追加から
--module-path "/Program Files/Java/javafx-sdk-11.0.2/lib" --add-modules=javafx.controls,javafx.fxml
を追加
このような設定をして実行するとウィンドウ画面が表示されます。
ですがプロジェクト作成時にGradleを選択すると、上の設定をしてもエラーが出てウィンドウが出力されません。
発生している問題・エラーメッセージ
Execution failed for task ':compileJava'. > Could not resolve all files for configuration ':compileClasspath'. > Cannot resolve external dependency org.openjfx:javafx-base:11 because no repositories are defined. Required by: project : > Cannot resolve external dependency org.openjfx:javafx-fxml:11 because no repositories are defined. Required by: project : > Cannot resolve external dependency org.openjfx:javafx-controls:11 because no repositories are defined. Required by: project : > Cannot resolve external dependency org.openjfx:javafx-graphics:11 because no repositories are defined. Required by: project : Possible solution: - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html
該当のソースコード
Launcher.java
java
1package iceE; 2 3import javafx.application.Application; 4 5public class Launcher { 6 public static void main(String... args){ 7 Application.launch(Main.class); 8 } 9} 10
Main.java
java
1package iceE; 2 3import javafx.application.Application; 4import javafx.fxml.FXMLLoader; 5import javafx.scene.Parent; 6import javafx.scene.Scene; 7import javafx.stage.Stage; 8 9public class Main extends Application { 10 @Override 11 public void start(Stage stage) throws Exception { 12 Parent root = FXMLLoader.load(getClass().getResource("scene.fxml")); 13 14 Scene scene = new Scene(root); 15 scene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm()); 16 17 stage.setTitle("JavaFX and Gradle"); 18 stage.setScene(scene); 19 stage.show(); 20 } 21 22} 23
build.gradle
gradle
1plugins { 2 id 'application' 3 id "org.openjfx.javafxplugin" version "0.0.9" 4} 5 6javafx { 7 version = "11" 8 modules = [ 'javafx.controls', 'javafx.fxml' ] 9} 10 11mainClassName = 'iceE.Launcher' 12jar { 13 manifest { 14 attributes 'Main-Class': 'iceE.Launcher' 15 } 16 from { 17 configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } 18 } 19} 20
試したこと
- Pathの設定や見直し
- build.gradle内のバージョンを変更
- sdkバージョンの変更
補足情報(FW/ツールのバージョンなど)
- IDE : intellij idea
- SDK : version-11.0.11
- module : JavaFX-sdk-11.0.2
あなたの回答
tips
プレビュー