Просто из любопытства я пытаюсь настроить Eclipse, чтобы он мог компилировать и запускать приложение со стандартным исправленным классом библиотеки.
У меня есть 2 Java-проекта patch
и consumer
: один содержит класс строкового патча (с новым методом size()
, идентичным length()
), а другой должен использовать указанный метод size()
. Настройка следующая:
- patch
- bin (contains class files)
- src
- java
- lang
- String.java
- consumer
- src
- consumer
- Main.java
- module-info.java
Main.java:
package consumer;
public class Main {
public static void main(String[] args) {
String s = new String("hello");
System.out.println(s.size());
}
}
После компиляции patch
(таким образом, получая String.class
внутри patch/bin/java/lang/
), я знаю, что могу легко использовать:
java --patch-module java.base=patchpjt/bin/ consumer/src/consumer/Main.java
Чтобы правильно вызвать вновь добавленный метод size()
, получив результат 5
.
Проблема в том, что в Eclipse метод size
все еще не распознается (ошибка Метод Size () недопустим для типа String ):
Итак, мой вопрос:
- Как настроить Eclipse, чтобы проект
consumer
правильно компилировал, запускал и не показывал ошибок?
- Как настроить Eclipse, чтобы в Content Assist отображался метод
size()
?
Я знаю, что мне нужно использовать Build Path -> Module Path -> Edit Is Modular -> Details Tab -> Patched module
, но я не знаю, как настроить оба проекта.
Некоторая информация, которая может оказаться вам полезной:
- Eclipse 2018-12 (4.10.0) ID сборки: 20181214-0600
Спасибо за любезный ответ.