You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用java-algs4编译运行Java程序报错找不到主类如何解决?

问题原因

你遇到的报错由两个常见错误共同导致:

  1. 运行Java程序时错误添加了.class后缀,Java虚拟机接收的参数是类名而非类文件名
  2. 代码顶部的包声明和实际目录结构不匹配

解决步骤(最简单方案)

  1. 编辑Ortho.java文件,删除第一行的package edu.princeton.cs.algs4;,同时把类定义修改为public class Ortho保证主类可以被正确识别。
    修改后的代码示例:
import java.util.Arrays;

public class Ortho{
    public static void main(String args[]){     
        // Read files from input and print statements
        In in = new In(args[0]);
        String[] list = in.readAllStrings(); //parse the first text input

        while (!StdIn.isEmpty()) {
            String key = StdIn.readString();
            System.out.print(key);
        }
    }
}
  1. 重新执行编译命令:
    javac-algs4 Ortho.java
  2. 执行正确的运行命令,去掉.class后缀:
    java-algs4 Ortho text_1.txt < text_2.txt

可选方案(保留包声明)

如果你需要保留原有的包声明,按照以下步骤操作:

  • 编译时添加-d参数自动生成包目录结构:
    javac-algs4 -d . Ortho.java
    执行后会自动在当前目录生成edu/princeton/cs/algs4/目录,编译好的Ortho.class会自动放到该目录下
  • 运行时使用全限定类名:
    java-algs4 edu.princeton.cs.algs4.Ortho text_1.txt < text_2.txt

内容的提问来源于stack exchange,提问作者Occhima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 13:36:00