2012-05-07 24 views
4

HI一个.java文件我有3个java文件的javac:编译它使用其他类在它

a.java 
b.java 
c.java 

我设法生成的.class两个文件和文件b。使用

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

但当我做同样的c.java我得到错误 错误:找不到符号b和c

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

所有的Java文件都在同一个文件夹

+1

你想告诉我们c.java的代码吗? – MByD

+0

实际上a和b是假设,而c实际上是Order.java这里是代码Customer,Address,Shipping和Item是编译时没有任何问题的其他对象。由于我不能在这里粘贴代码,我在[链接]上发布了代码(http://www.coderanch.com/t/580168/java/java/javac-compiling-JAVA-file-which#2638811) – Rajeshwar

回答

13

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

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

如果你去实例的父目录(姑且称之为src),那么你可以运行以下命令:

javac -cp src src/example/c.java 

你必须做这种方式的原因是因为你的班级有自己的包列为example。由于您的软件包名称,javac正在其类路径中查找example目录,该目录预计会找到a.classb.class

+0

java -cp示例c.java(无效的语法和路径) – Rajeshwar

+0

javac示例/ a.java示例/ b.java示例/ c.java或javac * .java已运行 – Rajeshwar

+0

@Rajeshwar查看我的编辑。 –

2

想必你不是在example/目录当您运行javac。尝试

javac -cp example c.java 

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

+1

如果他的包是可能会导致问题的示例 – 2012-05-07 00:46:57

+0

@Amir Afghani请查看[链接]上的最后一篇文章(http://www.coderanch.com/t/580168/java/java/javac-Compiling-JAVA-file- which #2638812) – Rajeshwar

+0

我从目录内运行了javac命令 – Rajeshwar