输入重定向到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中),并从构建菜单重建了该项目。