Java 如何在intellij JShell控制台中导入自定义类
我正在使用新的IntellijJShell控制台(这里介绍) 我创建了一个简单的类文件Test2.javaJava 如何在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
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()