powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Что можно писать внутри module-info.java ?
1 сообщений из 26, страница 2 из 2
Что можно писать внутри module-info.java ?
    #39549452
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerВот именно, что хочется пример с тремя классами сделать, только не знаю как.С разморозкой.
Подготовка примера заняла где-то полчаса, хотя лично я - ни разу не программист.
Сделал сразу, но не стал публиковать в (прошлом) сообщении.
Пример, разумеется, сугубо искусственный, но маленький.
Test.java
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
package test;

public class Test {
  public static void main(String[] args) {
    String msg = "";
    if ( args.length > 0) msg = args[0];
    test.outer.Lib.say(msg);
  }

  static { System.out.println("Start loading " + Test.class.toString() + " ..."); }
}


Lib.java
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
package test.outer;

public class Lib {
  public static void say(String msg) { Outer.say(msg); }

  static { System.out.println("Start loading " + Lib.class.toString() + " ..."); }
}

class Outer {
  static void say(String msg) { System.err.println(msg); }

  static { System.out.println("Start loading " + Outer.class.toString() + " ..."); }
}


All rules ignored
Код: plaintext
1.
2.
3.
4.
5.
  rd/q/s bin&md bin
  javac -d bin -cp bin src/Test.java
  src\Test.java:7: error: package test.outer does not exist
      test.outer.Lib.say(msg);
              ^
  1 error
Ожидаемо, т.к. запрошена компиляция файла , но нет зависим ого классса .

Повторяем на бис, но удаляем "зависимости второго уровня".
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  javac -d bin src/Lib.java&del bin\test\outer\outer.class
  javac -d bin -cp bin src/Test.java
  java -cp bin test.Test Hello?
  Start loading class test.Test ...
  Start loading class test.outer.Lib ...
  Exception in thread "main" java.lang.NoClassDefFoundError: test/outer/Outer
          at test.outer.Lib.say(Lib.java:4)
          at test.Test.main(Test.java:7)
  Caused by: java.lang.ClassNotFoundException: test.outer.Outer
          at java.net.URLClassLoader.findClass(Unknown Source)
          at java.lang.ClassLoader.loadClass(Unknown Source)
          at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
          at java.lang.ClassLoader.loadClass(Unknown Source)
          ... 2 more
Опаньки - загрузили классы, исполнили статические кодовые блоки и обнаружили, что тигру не доклали мяса ...

Код: plaintext
1.
2.
3.
4.
5.
  java -d bin -cp bin src/Lib.java
  java -cp bin test.Test Hello?
  Start loading class test.Test ...
  Start loading class test.outer.Lib ...
  Start loading class test.outer.Outer ...
  Hello?
...
Рейтинг: 0 / 0
1 сообщений из 26, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Что можно писать внутри module-info.java ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]