我对-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