我对-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 同时使用.java。
所以我编译: javac autos / tests / paquete / * .java
从根目录执行: java autos.tests.paquete.MainAutos 10 它有效,现在我怀疑了:
1)我用java -cp执行。 autos.tests.paquete.Main autos 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
提前谢谢,希望有人可以赐教,问候
答案 0 :(得分:0)
java -cp用于将任何库(如jar文件)设置为当前的类路径。
对于您展示的示例,您可以通过以下简单方式执行此操作
从您的根目录使用以下命令编译您的java文件
javac -d . *.java
这将创建那些适当的包并将类文件放在它们下面
然后使用来自相同根位置的命令运行代码
java autos.tests.paquete.MainAutos