Нужна помощь в рефакторинге кода с Java 9 на Java 8 ИЛИ Java 11 - PullRequest
0 голосов
/ 25 октября 2018

ОК, вот моя проблема.Я написал некоторый код с использованием Java 9, который прекрасно компилируется и работает при использовании JRE 10.0.2.Этот код имеет графический интерфейс, написанный на JavaFX, который позволяет пользователям выбирать каталоги для просмотра с помощью варианта этого кода: https://docs.oracle.com/javase/tutorial/essential/io/notification.html.

Я планировал использовать этот код в исследовательском проекте, где я запускаюэтот код на машинах других людей, которые могут иметь или не иметь привилегий администратора для самостоятельной установки JRE.Это означает, что я должен использовать поддерживаемую версию JRE, чтобы она не доставляла мне горя - это в основном означает Java 8 или Java 11.

Проблема: Мой код не работает ни с одним из нихверсия .Это оставляет меня в следующих случаях: (1) рефакторинг моего кода для совместимости с Java 8 или (2) рефакторинг моего кода для совместимости с Java 11.

Я сделал краткую попытку переключить свой языкот 9 до 8, но я получаю следующие ошибки:

java: package javafx.animation does not exist
java: package javafx.application does not exist
java: package javafx.concurrent does not exist
java: package javafx.geometry does not exist
(+ a few more javafx packages)
Java: package com.sun.nio.file does not exist

Я попытался выполнить поиск в Google и Stack Overflow для решения этой проблемы, но ничего не нашел.

Я также начал изучать использование Java 11, следуя этому посту: Intellij не может распознать javafx 11 с OpenJDK 11 , и я попробовал все возможные решения в потоке, но я получаю следующую ошибкусообщение:

JavaFX runtime components are missing, and are required to run this application

Как я могу решить эти проблемы?

Спасибо!

Обновление: я скачал JavaFX с https://openjfx.io/ и добавил это в свою библиотеку, что решило проблему со всем импортом JavaFX.Пакет com.sun.nio.file намного сложнее зафиксировать.

1 Ответ

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

Трудно ответить без дополнительной информации о вашем коде.

Я думаю, что причина вашей проблемы описана здесь : «Если вы попытаетесь построить приложение JavaFX под JDK 9, ориентируясь на Java 8, любая попытка разрешить любой тип JavaFX потерпит неудачу икомпиляция прервется ".Причина этого в том, что JavaFX включен в JDK 9, но не в JDK 8. Если это ваша проблема, вам нужно включить файл jar JavaFX в путь сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...