Я не знаю, что я делаю неправильно для старта Глюона - PullRequest
0 голосов
/ 07 октября 2018

Aloha Guy's,

Я не имею ни малейшего представления о том, что я делаю неправильно для начала с Gluon.

  1. У меня есть intellj IDEA 2018.2.4 (Community Edition)Сборка # IC-182.4505.22, построена 18 сентября 2018 г. JRE: 1.8.0_152-release-1248-b8 amd64 JVM: 64-битная виртуальная машина OpenJDK от JetBrains sro Windows 10 10.0

  2. установить Gluon Plugin Версия: 2.7.0

  3. Файл-> new-> Projekt-> gluon-> Рабочий стол Multi view Projekt с FXML-> java 11-> finish

  4. установить Gradel Gradle 4.10.2 использовал его как локальный параметр в последнем представлении настройки

  5. я использую версию Java "11" 2018-09-25

  6. я загружаю javaFx11 (openjfx-11_windows-x64_bin-sdk) и использую его в структуре как свободу

знаю, у меня есть это ->

00:41:11: Executing task 'run'...


> Task :compileJava FAILED
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\actions\MenuActions.java:5: error: package javafx.scene.control does not exist
import javafx.scene.control.Alert;
                           ^
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\actions\MenuActions.java:7: error: package javafx.scene.image does not exist
import javafx.scene.image.Image;
                         ^
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\actions\MenuActions.java:8: error: package javafx.scene.image does not exist
import javafx.scene.image.ImageView;
                         ^
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:7: error: package javafx.fxml does not exist
import javafx.fxml.FXML;
                  ^
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:8: error: package javafx.scene.control does not exist
import javafx.scene.control.Button;
                           ^
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:9: error: package javafx.scene.control does not exist
import javafx.scene.control.Label;
                           ^
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:10: error: package javafx.scene.control does not exist
import javafx.scene.control.TextInputDialog;
                           ^
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:27: error: cannot find symbol
    private Label label;
            ^
  symbol:   class Label
  location: class PrimaryController
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:30: error: cannot find symbol
    private Button button;
            ^
  symbol:   class Button
  location: class PrimaryController
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\SecondaryController.java:6: error: package javafx.fxml does not exist
import javafx.fxml.FXML;
                  ^
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\SecondaryController.java:7: error: package javafx.scene.control does not exist
import javafx.scene.control.Button;
                           ^
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\SecondaryController.java:20: error: cannot find symbol
    private Button button;
            ^
  symbol:   class Button
  location: class SecondaryController
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\GluonApplication.java:4: error: package javafx.scene does not exist
import javafx.scene.Scene;
                   ^
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\GluonApplication.java:7: error: cannot access Application
public class GluonApplication extends ParticleApplication {
       ^
  class file for javafx.application.Application not found
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\GluonApplication.java:14: error: cannot find symbol
    public void postInit(Scene scene) {
                         ^
  symbol:   class Scene
  location: class GluonApplication
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:26: error: cannot find symbol
    @FXML
     ^
  symbol:   class FXML
  location: class PrimaryController
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:29: error: cannot find symbol
    @FXML
     ^
  symbol:   class FXML
  location: class PrimaryController
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:32: error: cannot find symbol
    @FXML
     ^
  symbol:   class FXML
  location: class PrimaryController
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\SecondaryController.java:19: error: cannot find symbol
    @FXML
     ^
  symbol:   class FXML
  location: class SecondaryController
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\SecondaryController.java:22: error: cannot find symbol
    @FXML
     ^
  symbol:   class FXML
  location: class SecondaryController
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\actions\MenuActions.java:24: error: cannot find symbol
        Alert alert = new Alert(AlertType.INFORMATION);
        ^
  symbol:   class Alert
  location: class MenuActions
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\actions\MenuActions.java:24: error: cannot find symbol
        Alert alert = new Alert(AlertType.INFORMATION);
                          ^
  symbol:   class Alert
  location: class MenuActions
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\actions\MenuActions.java:24: error: cannot find symbol
        Alert alert = new Alert(AlertType.INFORMATION);
                                ^
  symbol:   variable AlertType
  location: class MenuActions
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\actions\MenuActions.java:27: error: cannot find symbol
        alert.setGraphic(new ImageView(new Image(MenuActions.class.getResource("/icon.png").toExternalForm(), 48, 48, true, true)));
                             ^
  symbol:   class ImageView
  location: class MenuActions
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\actions\MenuActions.java:27: error: cannot find symbol
        alert.setGraphic(new ImageView(new Image(MenuActions.class.getResource("/icon.png").toExternalForm(), 48, 48, true, true)));
                                           ^
  symbol:   class Image
  location: class MenuActions
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:51: error: cannot access StackPane
        app.getParticle().getToolBarActions().add(0, actionSignin);
                         ^
  class file for javafx.scene.layout.StackPane not found
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:55: error: cannot access ObservableList
        app.getParticle().getToolBarActions().remove(actionSignin);
                                           ^
  class file for javafx.collections.ObservableList not found
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:65: error: cannot find symbol
        TextInputDialog input = new TextInputDialog(stateManager.getProperty("UserName").orElse("").toString());
        ^
  symbol:   class TextInputDialog
  location: class PrimaryController
E:\IntellijProjects\GluonDesktop-MultipleViewProjectwithFXML\src\main\java\com\gluonapplication\controllers\PrimaryController.java:65: error: cannot find symbol
        TextInputDialog input = new TextInputDialog(stateManager.getProperty("UserName").orElse("").toString());
                                    ^
  symbol:   class TextInputDialog
  location: class PrimaryController
29 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 0s
1 actionable task: 1 executed
Compilation failed; see the compiler error output for details.
00:41:11: Task execution finished 'run'.

что я делаю неправильно?

1 Ответ

0 голосов
/ 07 октября 2018

Плагин Gluon 2.7.0 был выпущен некоторое время назад, в основном для создания приложений Gluon Desktop или Gluon Mobile с Java 8.

Если вы используете Java 11, пока не выйдет новый выпускПлагин Gluon, вам придется обновить файл build.gradle.

Я бы посоветовал вам взглянуть на то, как начать работать с JavaFX 11 в этом руководстве , и проверить это вопрос о добавлении JavaFX 11 в проект в IntelliJ.

Когда вы используете плагин Gluon, вы создаете проект Gradle.И для этого вам не нужно загружать весь JavaFX SDK, вы можете включить его через зависимости от Maven Central.

Поэтому отредактируйте файл build.gradle, который выглядит следующим образом:

apply plugin: 'java'
apply plugin: 'application'

repositories {
    jcenter()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
}

mainClassName = 'com.gluonapplication.GluonDesktop'

dependencies {
    compile 'com.gluonhq:particle:1.1.3'
}

И добавить следующие изменения:

  1. В соответствии с руководством для Gradle , добавить способ найти, какая ваша платформа:

    apply plugin: 'java'
    apply plugin: 'application'
    
    def currentOS = org.gradle.internal.os.OperatingSystem.current()
    def platform
    if (currentOS.isWindows()) {
        platform = 'win'
    } else if (currentOS.isLinux()) {
        platform = 'linux'
    } else if (currentOS.isMacOsX()) {
        platform = 'mac'
    }
    
    repositories {
        jcenter()
        maven {
            url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
        }
    }
    
    mainClassName = 'com.gluonapplication.GluonDesktop'
    
  2. Добавьте зависимости JavaFX для вашей платформы:

    dependencies {
        compile "org.openjfx:javafx-base:11:${platform}"
        compile "org.openjfx:javafx-graphics:11:${platform}"
        compile "org.openjfx:javafx-controls:11:${platform}"
        compile "org.openjfx:javafx-fxml:11:${platform}"
    
  3. Добавьте зависимость ControlsFX, совместимую с Java 9+ (по умолчанию используется 8.40.14, которыйбыло для Java 8) и добавьте зависимость javax.annotation, которая не является частью Java 9 +:

        compile 'com.gluonhq:particle:1.1.3'
        compile 'org.controlsfx:controlsfx:9.0.0'
        compile 'javax.annotation:javax.annotation-api:1.3.1'
    }
    
  4. Согласно руководству, вам необходимо добавить путь к модулюи добавьте необходимые модули к аргументам компилятора:

    compileJava {
        doFirst {
            options.compilerArgs = [
                    '--module-path', classpath.asPath,
                    '--add-modules', 'javafx.controls,javafx.fxml'
            ]
        }
    }
    
  5. И то же самое для аргументов запуска.В этом случае доступ к частному API (из-за некоторых требований ControlsFX) может быть выполнен с помощью --add-exports:

    run {
        doFirst {
            jvmArgs = [
                    '--module-path', classpath.asPath,
                    '--add-modules', 'javafx.controls,javafx.fxml',
                    '--add-exports', 'javafx.base/com.sun.javafx.runtime=ALL-UNNAMED',
                    '--add-exports', 'javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED',
                    '--add-exports', 'javafx.graphics/com.sun.javafx.scene.traversal=ALL-UNNAMED',
    
            ]
        }
    }
    

Сохраните и синхронизируйте изменения, и вы должнывозможность запуска вашего проекта Gluon Desktop.

Gluon Desktop

...