【问题标题】:Extended classes compile perfectly in Eclipse but not in cmd扩展类在 Eclipse 中完美编译,但在 cmd 中不完美
【发布时间】:2012-10-30 12:58:25
【问题描述】:

我的程序由扩展其他类的类组成。问题是,当我尝试在 cmd 中编译它们时,系统提示 “找不到符号”。一些讨论类似问题的网站提到包括 CLASSPATH 中的源文件夹。我按照他们说的做了,但仍然出现同样的错误。但是,它在 Eclipse 中运行顺畅。任何想法为什么?

【问题讨论】:

  • 您需要编译的所有类,以及执行编译所需的库,都必须在 -classpath 选项中定义。像这样的东西:javac -classpath path/to/everything.

标签: java eclipse cmd classpath


【解决方案1】:

确保首先编译顶级类。如果您尝试编译扩展其他类的类,并且您没有为该类编译 .class 文件,则会收到该错误。

package pkg1;
class A { }

package pkg2;
import pkg1.A;
class B extends A { }

对于上述代码,您应该首先编译包含您的class A.java 文件以编译您的包含class B.java 文件。另外,在类路径中设置包含 class files 的路径。

在 Eclipse 中,它可以工作,因为它会在您保存类时自动编译它们。

注意:-

如果您的类在某些包下,请使用以下命令编译您的 java 文件:-javac -d . A.java。这将为包名称创建一个文件夹,并自动将类文件放入该文件夹中。然后你的B班就可以找到它

【讨论】:

  • 我尝试以正确的顺序编译它们。使用您的示例,会发生什么: 1. A 已编译。 2.当我尝试编译B时,编译器说“找不到符号:A”。
  • 您能向我解释一下为什么 CLASSPATH 在这种情况下可能很重要吗?我将所有文件都放在一个文件夹中...
  • 您确定包含A.class 的路径在您的类路径中吗?对于 E.G,如果您的路径是:-D:\somePath\myclasses\A.class,您的类路径应包含:-D:\somePath\myclasses
  • @atLANtis。你有你的课程在某个包下吗?
  • @atLANtis。是的,您应该将类​​文件放在类似于您的包结构的文件夹层次结构中。按照上面的命令编译你的文件。它会起作用的。
猜你喜欢
  • 2013-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多