Как импортировать пользовательский класс в интеллигентную консоль JShell

Я использую новую интеллигентную консоль Jshell (представлена ​​здесь https://blog.jetbrains.com/idea/2017/09/java-9-and-intellij-idea/)

Я создал простой файл класса Test2.java

public class Test2 {

    public static String test(){
        return "Hello";
    }
}

Консоль JShell может найти метод в подсказках

когда я пытаюсь запустить это на IntelliJ консоли jshell (Инструменты> Консоль Jshell)

Test2.test();

Я получаю следующую ошибку

"C:\Program Files\Java\jdk-9.0.1\bin\java" --add-modules java.xml.bind -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.1\lib\jshell-frontend.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3.1\lib\jshell-protocol.jar" com.intellij.execution.jshell.frontend.Main

ERROR: cannot find symbol
  symbol:   variable Test2
  location: class 
Rejected Test2.test()

Что мне нужно настроить, чтобы JShell распознал мой пользовательский класс?
Я настроил его на использование пути к классам моего проекта.

Коды.

Консоль Jshell и ошибка ниже.

Редактировать:

Я также попытался переместить коды в пакет и импортировать его в Jshell, как это было предложено пользователем @NullPointer.

Та же ошибка сохраняется, и это также дает мне ошибку "ОШИБКА: пакет angelapps.java не существует".

1 ответ

Решение

Допустим, у вас есть следующая структура проекта:

и следующий код:

Убедитесь, что в настройках проекта установлены библиотеки: File -> Project Structure -> Libraries

Убедитесь, что вы используете свое выходное местоположение здесь (место, где генерируются ваши файлы классов)! Это может варьироваться в зависимости от системы сборки (цель / классы или выход / производство и т. Д.)

Это должно дать вам результат, который вы ищете:

Другие вопросы по тегам