Модульный проект вызывает InvalidModuleDescriptorException с помощью jOpenDocument - PullRequest
0 голосов
/ 09 октября 2019

Я разрабатываю модульный проект java с java / javafx 12 в Eclipse 2019-06, используя смешанный модульный и немодульный подход. Невозможно запустить программу из-за исключительных ситуаций во время выполнения.

Мне нужно использовать смешанный модульный и немодульный подход, поскольку программе требуются внешние библиотеки. Большинство из них доступны в виде модулей, но разработчики не предоставляют jOpenDocument в качестве модуля.

Я не получаю жалоб от Eclipse, за исключением «Имя автоматического модуля jOpenDocument нестабильно», что не должно бытьпроблема.

Когда я запускаю программу, я получаю следующее исключение:

Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for C:\Users\ct\eclipse-workspace-2019-06\DMModule2\lib\jOpenDocument-1.4rc2.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: JDOMAbout$Info.class found in top-level directory (unnamed package not allowed in module)

У меня есть все внешние jar в пути к модулю, файл информации о модуле показан здесь ниже.

Проект может работать гладко, используя немодульный подход, но я бы хотел остановиться на модулях. Я нашел эти две ссылки для одной и той же проблемы

Смешанная модульная и немодульная разработка в Eclipse с использованием Java 11

Что мне нужно построитьПроект JDK 9 с немодулярными зависимостями, использующий Maven

, но не помог мне решить.

Исходный код для jOpenDocument доступен https://jopendocument.org/download/jOpenDocument-src-1.4rc2.zip,, поэтому обновление jarк модулю путем добавления файла информации о модуле возможно. Я тоже это попробовал, но безуспешно, если кто-то может сделать это, что было бы полезно для сообщества, я думаю.

module dmmodule2 {
      exports dmmodule;
      exports gui;

      // sql
      requires transitive java.sql;

      // Json
      requires transitive org.glassfish.java.json;

      // jOpenDocument
      requires transitive jOpenDocument;

      // JavaFX;
      requires javafx.fxml;
      requires transitive javafx.graphics;
      requires transitive javafx.controls;

      opens dmmodule to javafx.fxml;
      opens gui to javafx.fxml;
}

Кто-то так любезен, чтобы дать подсказку, чтобы заставить мой модульный проект работать, используя либодоступный двоичный файл jOpenDocument путем преобразования его в модуль из исходного кода?

1 Ответ

0 голосов
/ 09 октября 2019

Это проблема, связанная с JDOM, мы увидим, что мы можем сделать в следующей версии jOpenDocument.

...