如何在intellij JShell控制台中导入自定义类

问题描述 投票:0回答:2

我正在使用新的intellij 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控制台可以在提示中找到方法 enter image description here

当我尝试在 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 识别我的自定义类吗?
我已将其设置为使用我的项目的类路径。

代码。
enter image description here

Jshell控制台和下面的错误。 enter image description here

编辑:

我还尝试按照用户@NullPointer的建议将代码移动到包中并将其导入到Jshell中。

同样的错误仍然存在,并且还给出了“错误:包angelapps.java不存在”错误。

enter image description here

java intellij-idea jshell
2个回答
19
投票

假设您有以下项目结构:

enter image description here

和以下代码:

enter image description here

确保在项目设置中设置库:

File -> Project Structure -> Libraries

确保在此处使用您的输出位置(生成类文件的位置)!它可能会根据构建系统(目标/类或输出/生产等)而有所不同

enter image description here

它应该给你你正在寻找的结果:

enter image description here


0
投票

人们沮丧地来到这里:如果你有 Java 模块,你必须将编译代码的库(如上所示)添加到模块依赖项中。这似乎是 Jshell 获取其类路径的地方。

© www.soinside.com 2019 - 2024. All rights reserved.