为了账号安全,请及时绑定邮箱和手机立即绑定

错误:在编译具有多个类的 .Java 文件后使用 Java 命令时无法找到或加载主类

错误:在编译具有多个类的 .Java 文件后使用 Java 命令时无法找到或加载主类

海绵宝宝撒 2023-03-17 17:09:57
我尝试在编译 .java 文件后运行 java 命令,.java 文件包含多个类,但只有一个公共类,公共类中只有一个主要方法。当所有 .class 文件都在同一个地方时,它找不到主类。在 netbeans 上它运行完美,在 CMD 上是出现错误的地方。如果我在写作中有任何错误,也很抱歉,英语不是我的主要语言,它是西班牙语。这也是类和变量名称使用西班牙语的原因。我已经检查过该类只有一个主要方法,所有类都在同一个地方,.java 文件中只有一个公共类这就是代码,正如您所见,只有一个公共课程,而 main 在公共课程中。    package dfutreras_arqapp_aa19_2b;   public class Dfutreras_ArqApp_AA19_2B {    public static void main(String[] args) {        // TODO code application logic here        Constructora constructora = new Constructora();        ConstruyeCasas constructor_SencillaCasa = new ConstruyeCasasSencillas();        ConstruyeCasas constructor_FamiliarCasa = new ConstruyeCasasFamiliares();        constructora.setConstruyeCasas(constructor_SencillaCasa);        constructora.construirCasa();        Casa casa =  constructora.getCasa();        System.out.println("Se ha construido una casa " + casa.getTipo());        System.out.println("Con " + casa.getHabitaciones()+ " habitaciones");        System.out.println("Con " + casa.getBanos()+ " baños");        System.out.println("Con " + casa.getVentanas()+ " ventanas");        System.out.println();        constructora.setConstruyeCasas(constructor_FamiliarCasa);        constructora.construirCasa();        Casa casa2 =  constructora.getCasa();        System.out.println("Se ha construido una casa " + casa2.getTipo());        System.out.println("Con " + casa2.getHabitaciones()+ " habitaciones");        System.out.println("Con " + casa2.getBanos()+ " baños");        System.out.println("Con " + casa2.getVentanas()+ " ventanas");    }    }//产品类`class Casa{`    private Integer habitaciones;    private Integer banos;    private Integer ventanas;    private String tipo;    public void setHabitaciones(Integer habitaciones){        this.habitaciones = habitaciones;    }        public void setBanos(Integer banos){        this.banos = banos;    }
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

您的班级声明为:

package dfutreras_arqapp_aa19_2b;
public class Dfutreras_ArqApp_AA19_2B {

这意味着它在包中dfutreras_arqapp_aa19_2b,因此: - 运行时必须提供整个包名称,并且 - 当前目录必须位于根(顶级)目录中。

将这些放在一起意味着要运行该类,请转到 src 目录:

C:\Users\hecto_000\Documents\NetBeansProjects\Dfutreras_ArqApp_AA19_2B\src

并运行命令:

java dfutreras_arqapp_aa19_2b.Dfutreras_ArqApp_AA19_2B

要从当前目录运行该类,请package dfutreras_arqapp_aa19_2b从 .java 文件中删除该行,这意味着该类位于“默认”包中。

巧合的是,还值得一提的是,Java 命名标准是类名应该是“CamelCase”(所以没有下划线)


查看完整回答
反对 回复 2023-03-17
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

include (package dfutreras_arqapp_aa19_2b;) package 在你所有的类中,然后试一试。



查看完整回答
反对 回复 2023-03-17
  • 2 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信