我正在使用终端来编译和构建java程序。
所以我有2个类CP1
和CP2
属于包名current
,它们在2个独立的.java文件中实现 - CP1.java
和CP2.java
虽然类是微不足道的,但这里是代码
CP1.java:
package current;
public class CP1{
void hello(){
System.out.println("CP1 class is used");
}
}
CP2.java:
package current;
public class CP2{
public static void main(String [] args){
System.out.println("CP2 class is used");
CP1 c= new CP1();
}
}
由于CP1和CP2在同一个包中定义,因此我不会导入当前包。两个.java文件都在同一目录中。 CP1.java编译,结果是CP1.class文件。现在我尝试使用-cp选项编译CP2.java:
javac -cp . CP2.java
但是,这会导致错误消息:
symbol: class CP1
location: class CP2
CP2.java. error: cannot find symbol
CP1=new CP1
我尝试了各种路径到cp,但仍然得到相同的错误消息。我究竟做错了什么?
答案 0 :(得分:2)
你缺少实例变量名,所以它应该是这个
CP1 objname = new CP1();
不是这个
CP1 = new CP1();
注意:objname
可以替换为任何有效的变量名称,因此您可以在线搜索命名指南/如何命名变量或可以尝试Official doc link
更新:按照以下步骤进行编译
1.。)好像你在文件所在的位置,所以只需这样做
javac -d . CP1.java
javac -d . CP2.java
如果不存在, -d
将为您生成包。