我在 Netbeans 上创建了一个简单的 Java 程序,当我在 Netbeans IDE 中执行它时,它工作得很好。然而,这是我正在处理的问题:
使用命令行使用“javac”编译后运行程序时遇到此错误,特别是在 Fedora 上的 bash:
java EjerciciosClase 错误:无法找到或加载主类 EjerciciosClase 引起原因:java.lang.NoClassDefFoundError:com/estudio/ejerciciosclase/EjerciciosClase(错误名称:EjerciciosClase)
我能够通过注释包名称行来解决它:
包 com.estudio.ejerciciosclase;
我已从包装中取出该线,它似乎可以工作。
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package com.estudio.ejerciciosclase;
import java.util.Scanner; // import the scanner class
/**
*
* @author jfac
*
*/
public class sumScanner {
public static void main(String[] args) {
int numA, numB, theSum;
System.out.println("Program that reads y sums two numbers");
Scanner newObj = new Scanner(System.in);
System.out.println("Enter the first number: ");
numA = newObj.nextInt();
//String numAString = Integer.toString(numA);
System.out.println("Enter the second number: ");
numB = newObj.nextInt();
//String numBString = Integer.toString(numB);
theSum = numA + numB;
// String theSumString = Integer.toString(theSum);
System.out.println("The sum of " + numA + " + " + numB + " is equal to " + theSum);
}
}
有没有其他方法可以在不删除包名称行的情况下运行该程序?我想在 netbeans IDE 和 BASH 终端上运行程序而不修改代码。
@您共享的类称为“sumScanner”,而不是“EjerciciosClase”。您的类位于与包结构匹配的子目录中。如果您正在注释该包并且它有效,那么您正在执行一个名为“EjerciciosClase”的类,该类位于源目录的顶部而不是子包。要执行包中的类,您需要添加包:
java com.estudio.ejerciciosclase.sumScanner
。
根据 Java 命名约定,类名应以大写字母开头,但这与问题无关。您应该遵循 Java 约定,因此您应该将类重命名为类似
SumScanner
的名称,以及要匹配的文件名。