【问题标题】:cannot find symbol error javac command找不到符号错误 javac 命令
【发布时间】:2016-10-07 16:30:37
【问题描述】:

我正在使用终端编译和构建 java 程序。 所以我有 2 个类 CP1CP2 属于包名 current,它们在 2 个单独的 .java 文件中实现 - CP1.javaCP2.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 路径,但仍然收到相同的错误消息。我究竟做错了什么?

【问题讨论】:

  • 你的 CP2.java 的类名不应该是 CP2 类
  • 没错,这个错字
  • 阅读更新后的答案,我已经测试过了,工作正常,确保没有错别字

标签: java


【解决方案1】:

您缺少实例变量名称,所以它应该是这个

CP1  objname = new CP1();

不是这个

CP1 = new CP1();

注意:objname 可以替换为任何有效的变量名,因此您可以在线搜索命名指南/如何命名变量或尝试Official doc link

更新:按照以下步骤编译

1.) 似乎您位于文件所在的位置,所以只需执行此操作

javac -d . CP1.java

javac -d . CP2.java

-d 会为你生成这个包,如果它不存在的话。

【讨论】:

  • 对不起,在原代码CP1 c= new CP1(),当然
  • @olzhabala 你可以通过点击勾选 sumbol(左侧)来接受我的回答,感谢我。快乐的编码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-07
  • 1970-01-01
  • 2018-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多