我对-cp以及何时应使用它有疑问。这是我的情况:
我有两个.java,第一个:

包autos.tests.paquete;

公共课程MainAutos {

public static void main(String args[]) {

int x = Integer.parseInt(args[0]);

Respotar objeto1 = new Respotar (x);


int mostrar = objeto1.repostar();


System.out.println(mostrar);


}
}

第二个:

包autos.tests.paquete;

公共类Respotar {

int gasolina;

public Respotar (int gasolina) {

    this.gasolina=gasolina;

}


public int repostar (){

    int gasolina = this.gasolina +20;



    return  gasolina;
}


}

好吧,我在根目录下,那里有一个目录:autos / tests / paquete
与两个。

所以我编译:
javac autos / tests / paquete / *。java

并从根目录执行:
java autos.tests.paquete.MainAutos 10
并且它起作用了,现在我开始怀疑:

1)我用java -cp执行。 autos.tests.paquete.Main自动运行10,其行为相同。

2)我将Respotar.class从auto / tests / paquete移动到另一个目录,我用
java autos.tests.paquete.MainAutos 10,它可以工作。

3)我将MainAutos.class从auto / tests / paquete移到另一个目录,我用
java autos.tests.paquete.MainAutos 10,它说:错误:找不到或加载主类autos.tests.paquete.MainAutos

4)我用java -cp编译。 autos.tests.paquete.MainAutos(我正在编译的当前目录上有.class,所以我认为我必须使用-cp),它表示相同:
错误:找不到或加载主类autos.tests.paquete.MainAutos

在此先感谢您,希望有人能启发我,问候

最佳答案

java -cp用于将任何库(例如jar文件)设置为当前的类路径。

对于您显示的示例,您可以通过以下简单方法进行操作

从您的根目录使用以下命令编译Java文件

javac -d . *.java


这将创建那些合适的包并将类文件放在它们下面

然后在相同的根位置使用类似的命令运行代码

java autos.tests.paquete.MainAutos

10-05 23:44