Я скачал jsch-0.1.55.jar с https://sourceforge.net/projects/jsch/files/jsch.jar/0.1.55/jsch-0.1.55.jar/download, скопировал файл JAR в мой каталог lib, на котором работает версия Eclipse: 2023-12 (4.30.0) в Windows. Я попытался добавить JAR в Eclipse, используя Project Explorer-> Щелкните правой кнопкой мыши по проекту-> Путь сборки-> Настроить путь сборки-> Путь сборки Java-> Вкладка «Библиотеки»-> Путь к модулю-> Добавить JAR...-> перешел в папку lib, в которую я скопировал файл JAR, но теперь он отображается, дважды проверил его в папке lib через проводник Windows, и это так. Попробовал добавить его через Modulepath-> «Добавить внешние JAR-файлы...», который он добавляет, но никогда не отображается в Project Explorer в папке lib, хотя он отображается в ссылочных библиотеках, но когда я пытаюсь выполнить импорт внутри класс, который мне нужен, «импортировать com.jcraft.jsch.*;», я получаю сообщение об ошибке: «Пакет com.jcraft.jsch недоступен». Я попытался добавить его в файл mod-info.java «требуется com.jcraft.jsch;», но получил ошибку: «com.jcraft.jsch не может быть преобразован в модуль».
Буду признателен за любую помощь, и нет, я не использую maven в этом проекте.
jsch-0.1.55.jar не имеет ни module-info.class, ни Automatic-Module-Name, что означает, что имя модуля будет получено из имени файла JAR, а requires com.jcraft.jsch; неверно. Рассмотрите возможность просто удалить файл module-info.java (при необходимости вы можете воссоздать его позже, щелкнув правой кнопкой мыши проект и выбрав «Настроить»).
@howlger Основываясь на вашем комментарии, я смог узнать, как добавить его, используя имя файла, которое мне требуется в модуле-info.java, т. е. «требуется jsch;» Если вы ответите на вопрос этим решением, я отмечу его как ответивший. Спасибо!
@nitind Мне нужен файл mod-info.java, чтобы он компилировался, я новичок в Java, поэтому не знаю, зачем все и где нужно, но это то, что шаблон создал для меня в Eclipse.
Смотрите мой ответ ниже. В диалоговом окне «Новый проект Java» есть возможность создать файл module-info.java, который включен по умолчанию. module-info.java требуется при использовании jlink. Но есть случаи использования, когда вы хотите запускать и останавливать модули во время выполнения, что не поддерживается JPMS в отличие, например, от ОСГи. В большинстве случаев вы можете выбрать, хотите ли вы инкапсуляцию, которая требует немного больше работы для поддержания module-info.java. Короче говоря, module-info.java не является обязательным.




В jsch-0.1.55.jar нет ни module-info.class, ни Automatic-Module-Name в META-INF/MANIFEST.MF. Таким образом, имя модуля будет получено из имени файла JAR.
В вашем файле module-info.java замените
requires com.jcraft.jsch;
с
requires jcraft;
Кроме того, вы можете удалить свой файл module-info.java (при необходимости вы можете воссоздать его позже, щелкнув проект правой кнопкой мыши и выбрав «Настроить»).
Когда я пытаюсь удалить модуль-info.java и пытаюсь запустить его в режиме отладки, я получаю следующую ошибку: Error: Could not find or load main class main.mainGUI Caused by: java.lang.NoClassDefFoundError: org/apache/commons/net/telnet/TelnetNotificationHandler В моей конфигурации отладки у меня правильно установлен основной класс, если я использую кнопку «Поиск», это позволяет мне найти его через графический интерфейс, так что я предполагаю, что это правильно?
Помогает ли в разделе «Выполнить» > «Конфигурации запуска...» удаление конфигурации запуска/отладки и повторная попытка? Может возникнуть проблема, связанная с тем, что Eclipse неправильно обновляет конфигурацию запуска после удаления файла module-info.java.
да, после удаления конфигураций запуска оно теперь скомпилируется, однако, когда я запускаю свое приложение, я получаю сообщение об ошибке «Исключение в потоке «AWT-EventQueue-0» java.lang.NoClassDefFoundError: com/jcraft/jsch/JSchException ", ты знаешь, как это решить? Поскольку я бы предпочел не иметь файл mod-info.java.
неважно. Я изменил конфигурацию запуска для JAR с пути к моему модулю на путь к классам, и теперь он работает.
Я рад, что теперь это работает. Лучше сделайте это («JAR из пути моего модуля в путь к классу») в «Проект» > «Свойства: Путь сборки Java», вкладка «Библиотеки», а не для каждой конфигурации запуска.
Собирались ли вы использовать модули Java в своем проекте?