Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在intellij JShell控制台中导入自定义类_Java_Intellij Idea_Jshell - Fatal编程技术网

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

Java 如何在intellij JShell控制台中导入自定义类,java,intellij-idea,jshell,Java,Intellij Idea,Jshell,我正在使用新的IntellijJShell控制台(这里介绍) 我创建了一个简单的类文件Test2.java public class Test2 { public static String test(){ return "Hello"; } } JShell控制台能够在提示中找到方法 当我尝试在intellij jshell控制台(工具>jshell控制台)上运行此命令时 我得到以下错误 "C:\Program Files\Java\jdk-9.0.1\b

我正在使用新的IntellijJShell控制台(这里介绍)

我创建了一个简单的类文件Test2.java

public class Test2 {

    public static String test(){
        return "Hello";
    }
}
JShell控制台能够在提示中找到方法

当我尝试在intellij jshell控制台(工具>jshell控制台)上运行此命令时

我得到以下错误

"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控制台和下面的错误。

编辑:

我还尝试将代码移动到一个包中,并按照user@NullPointer的建议将其导入Jshell

同样的错误仍然存在,并且它也给了我“error:package angelapps.java不存在”错误


假设您有以下项目结构:

和以下代码:

确保在项目设置中设置库:
File->Project Structure->Libraries

确保在此处使用输出位置(生成类文件的位置)!它可能因构建系统(目标/类别或外部/生产等)而异

它应该给你你想要的结果:


可以更好地打包类
src/main/java//Test2
,然后尝试运行类似于
import.Test2;Test2.test()
在使用
MyFirstApp
?@nullpointer的类路径时,我也尝试为类设置包名,但没有成功(请参见编辑中的屏幕截图)。也有点像:)。哦。酷。oOo.对我不起作用,我仍然得到“错误:包org.thinkbigthings.jshell不存在拒绝导入org.thinkbigthings.jshell.*”我将项目添加到它自己的库中,如前所述,并尝试重新启动jshell和IDE。哦,我将项目(本身,基本文件夹)添加为库,而不是项目输出文件夹,这条路看起来很相似。在回答“确保在项目设置中设置库”时,是否可以明确说明它是包含项目输出类基础的输出文件夹?在图像中很难看到确切的路径,也很难找出我的项目对应的路径(我在gradle上,我的输出路径是不同的),即使这样工作,它也有一些缺点。只要JShell控制台是开放的,就不会编译项目的Java源代码。要使JShell了解代码更改,需要1)关闭JShell控制台,2)强制编译更改的代码,或者只编译单个文件或整个项目,3)重新打开JShell控制台。似乎将输出目录作为库添加到项目中,以获得JShell控制台中可用的类的解决方案有限制,或者甚至不打算工作,请参阅
"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()