有关 java 包的帮助 - 导入不起作用
我是一个C++开发人员 - 不是Java开发人员,但必须让这段代码正常工作......
我有2个公共课程,将由另一个产品使用。我在每个java文件中都使用了package指令。
package com.company.thing;
class MyClass ...
当我尝试编译使用我添加的测试应用时
import com.company.thing.*;
javac 编译器失败,出现有关 com.company 的错误。(即使我将其编译在我刚刚制作包的类文件相同的目录中)
我确信我正在做一些愚蠢和愚蠢的事情。
我已经阅读了 http://java.sun.com/docs/books/tutorial/java/package/usepkgs.html 页面,并试图建立一个目录结构,如/com/company/thing等,但要么我完全搞砸了,要么错过了其他东西。
编辑 感谢您的建议 - 我以前尝试过类路径。这无济于事。
我尝试编译
javac -classpath <parent> client.java
结果是:
package com.company does not exist
我有要导入的代码(两个java文件)在\com\company\product中。我编译这些很好。(它们包含 MyClass)我甚至为他们做了一个罐子文件。我将jar文件复制到父目录。
然后我做了(在带有客户端java文件的父目录中)
javac -cp <jarfile> *.java
结果是:
cannot access MyClass
bad class file: MyClass.class(:MyClass.class)
class file contains wrong class: com.company.product.MyClass
Please remove or make sure it appears in the correct subdirectory of the classpath.
编辑
如果我使用 MyClass 的完全限定名并将其编译到父目录中,则我将获得要编译和运行的客户端代码。我现在完全困惑了。
编译时未设置类路径 - 只是
javac *.java
在父目录中 - 并且工作正常。
我可以编译一个测试应用程序,但是当我必须将其集成到生产代码中时,这不会削减它。仍在寻求帮助。
编辑:
最后 - 不知道为什么它以前不起作用 - 但我清理了目录结构中的所有文件,现在它工作了。
谢谢