【问题标题】:javac : Compiling a .java file which uses other classes in itjavac : 编译一个使用其他类的 .java 文件
【发布时间】:2012-05-07 00:40:00
【问题描述】:

嗨,我有 3 个 java 文件

a.java  
b.java  
c.java  

我设法为 a 和 b 生成了 .class 文件

javac example/a.java  
javac example/b.java  

但是当我对 c.java 做同样的事情时,我得到了错误 错误:找不到符号 b 和 c

关于我如何解决这个问题的任何建议?

所有java文件都在同一个文件夹中

【问题讨论】:

  • 要不要给我们看c.java的代码?
  • 实际上 a 和 b 是假设,c 实际上是 Order.java 下面是代码 Customer、Address、Shipping 和 Item 是编译没有任何问题的其他对象。由于我无法在此处粘贴代码,因此我将代码发布在 link

标签: java compiler-errors


【解决方案1】:

当您尝试编译类c 时,您的类路径中必须有类ab。这允许编译器验证它们是否存在,找出它们有什么方法,等等。

javac 对包名和类路径非常敏感。最简单的做法是同时编译所有三个,就像javac example/a.java example/b.java example/c.java

如果你去example的父目录(我们称之为src),那么你可以运行以下:

javac -cp src src/example/c.java

您必须这样做的原因是因为您的类将它们的包列为example。由于您的包名称,javac 正在其类路径中查找example 目录,它希望在其中找到a.classb.class

【讨论】:

  • java -cp example c.java(无效的语法和路径)
  • javac 示例/a.java 示例/b.java 示例/c.java 或 javac *.java 工作
【解决方案2】:

当您运行javac 时,您可能不在example/ 目录中。试试

javac -cp example c.java

或者只是 cd 进入该目录。 c.java 类的类路径不会自动解析。取决于

【讨论】:

  • 如果他的包裹是一个可能会出问题的例子
  • @Amir Afghani 看看link的最后一篇帖子
猜你喜欢
  • 2021-03-12
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
  • 2011-12-28
相关资源
最近更新 更多