用Java导入自定义库

时间:2011-12-07 15:48:48

标签: java import

我需要在项目中导入Java类。我需要导入的类是在一个JAR文件中 绝对路径~/Documents/mylib/stdlib.jar

现在在我的源文件(Test.java)中我正在使用

import stdlib.*;

我正在编译 javac -classpath ~/Documents/mylib/stdlib.jar Test.java

它显示stdlib不存在的错误。

我的import语句是否正确或类路径有什么问题? 这个import语句不应该导入JAR文件中的所有类吗?

我没有使用任何IDE,我的操作系统是Linux。

4 个答案:

答案 0 :(得分:3)

import语句从jar文件导入类,而不是jar文件本身。

表单的导入声明:

  import stdlib.*;

将导入 stdlib中的所有类。

Oracle提供this tutorial on import

编辑:您似乎正在使用An introduction to programming in Java的stdlib.jar。此jar文件中的类没有包。您不需要在默认包中导入类,因为您的类也在默认包中。

答案 1 :(得分:0)

它将立即导入“stdlib”包下的所有类,但子包中没有任何内容。您需要导入包和类;我们可以在jar里面看到你的包名称假设是否正确。

类路径本身很好。


更新了评论中的信息。

您说您正在尝试导入默认包中的类。从默认包导入类型是语法错误。有关详细信息,请参阅JLS Section 7.5

  

从未命名的包导入类型是编译时错误。

如果您必须访问此课程,则需要使用反射。

但是将它放在命名包中要容易得多。

答案 2 :(得分:0)

使用$HOME代替~

$ HOME扩展,〜不是。

答案 3 :(得分:0)

检查StdOut.java是否有声明package stdout;

或者它只是位于stdout.jar的顶级文件夹中?