输入重定向到Java – 无法找到或加载主类
我尝试了每个在线解决方案,我仍然得到相同的结果..我试图让我的代码运行在“distinct.txt”文件上,这是我尝试运行它。
我试过不同的路径,都给出了相同的结果。
这是我的代码
package pset2.sol; import edu.princeton.cs.algs4.StdIn; public class Permutation { public static void main(String[] args){ RandomizedQueue rq = new RandomizedQueue(); while (!StdIn.isEmpty()) { String item = StdIn.readString(); rq.enqueue(item); } int k = Integer.parseInt(args[0]); for(int i = 0; i < k; i++){ System.out.println(rq.dequeue()); } } }
我的猜测是你的源文件夹设置不正确。
尝试文件 – >项目结构 – >模块 – >(选项卡)来源 – >标记为:来源。
这导致我在导入Eclipse项目后解决了这个问题。
您必须确保在Project Structure > Project
设置“项目编译器输出”值,并且模块的编译器输出指向有效路径:
理想情况下,您应该始终使用IntellIJ中的绿色按钮。 您可以设置“编辑配置”以提供文件的路径。 不过,我不知道从stdin那里读取文件。
你的问题不是IntelliJ,而是CMD。
首先,确保您在正确的文件夹中。
运行cd /path/to/compiled_files
以查看您是否位于pset
文件夹的父级。
pset /sol2 Permutation.class
然后,您可能需要一个类路径来解析pset.sol2
包中的其他类。
java -cp . pset.sol2.Permutation
更多细节: “无法找到或加载主类”是什么意思?
派对有点晚了,但我发现我的主文件(在源文件中)缺少“.java”扩展名,即使文件在intelliJ项目浏览器中看起来很好。
但仔细检查后,我注意到/ out /中的文件类型不是类文件(即没有带有“C”的蓝色圆圈)。
我想这可能是因为我在源文件夹中创建了“主”文件,然后我在项目设置中将该文件夹标记为源文件,并且创建的文件类型以某种方式未定义…
为了解决这个问题,我将Main文件重命名为Main.java(在finder中),并从构建菜单重建了该项目。