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

Java程序报错:无法找到或加载主类BasicSorting_1求助

错误原因分析与解决方案

报错信息

Error: Could not find or load main class BasicSorting_1
Caused by: java.lang.NoClassDefFoundError: Sorting/BasicSorting_1 (wrong name: BasicSorting_1)

原因分析

这个错误的核心问题是包结构与文件存放路径不匹配,加上编译运行的命令执行方式错误:

  • 代码开头声明了package Sorting;,说明该类属于Sorting包,对应的Java文件必须放在名为Sorting的子目录下
  • 直接在文件所在目录编译运行,没有遵循包结构的要求,导致JVM无法定位到正确的类路径

解决方法

步骤1:调整文件目录结构

  • 在当前工作目录下创建一个名为Sorting的文件夹
  • 将BasicSorting_1.java文件移动到Sorting文件夹中

步骤2:编译与运行命令

  1. 编译:回到工作目录(即Sorting文件夹的父目录),执行编译命令:
    javac Sorting/BasicSorting_1.java
    
  2. 运行:同样在父目录下,使用带包名的完整类名运行:
    java Sorting.BasicSorting_1
    

可正常运行的代码(含小优化)

package Sorting;

import java.util.*;

public class BasicSorting_1 {
    public static void bubbleSort(int num[]) {
        int n = num.length;
        for (int turn = 0; turn < n - 1; turn++) {
            // 优化内层循环:跳过已排好序的末尾元素
            for (int j = 0; j < n - 1 - turn; j++) {
                if (num[j] > num[j + 1]) {
                    // 交换元素
                    int temp = num[j];
                    num[j] = num[j + 1];
                    num[j + 1] = temp;
                }
            }
        }
    }

    public static void display(int num[]) {
        int n = num.length;
        for (int i = 0; i < n; i++) {
            System.out.print(num[i] + " ");
        }
        System.out.println();
    }

    public static void main(String[] args) {
        int num[] = { 2, 3, 1, 7, 5 };
        bubbleSort(num);
        display(num);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 23:54:28