2013-07-24 47 views
0

我从一堆java文件创建了一个jar文件。文件夹结构是org/ax/redis。我使用了命令jar cvf jedis.jar org/*。然后我将这个jar文件导入到我的netbeans项目中。然后当我尝试从它导入类时,通过编写import org.ax.redis.*。但是,netbeans显示没有这样的软件包存在的错误。无法在netbeans中导入jar文件的类

现在我打开另一个log4j jar文件,看它是如何从里面。清单文件中只有不同之处。它有一堆指令,如Name: org/apache/log4j/。所以我通过包含Name: org/ax/redis/为我的jar文件创建了一个清单文件。使用此命令将清单信息添加到我的罐子罐cvfm jedis.jar META-INF/manifest.txt org/*中。仍然没有用。请帮助我

+3

您是从'.java'文件还是'.class'文件创建jar文件?只有源代码的jar文件不能用作库...你可以展示如果你运行'jar tvf jedis.jar'会发生什么? –

+0

我点击了你指定的命令,它显示了jar文件中所有.java文件的列表。是的,我没有注意到log4j的jar文件和我的最大区别。他们拥有所有的.class文件。 – Shades88

+0

你想让我补充一点,或者你要删除这个问题吗? –

回答

0

Jar文件通常包含类文件(编译结果),而不是源文件文件(* .java)。虽然一些jar文件可能包含两个文件,但只有类文件可用于编译或运行(例如,使用-cp library.jar)。所以基本上,在构建你的jar文件之前,你需要编译你的代码 - 然后在jar文件中包含这些类文件。如果您也包括源文件(在相同的目录结构中),那么一些IDE可能会检测到,这可能很有用。

0

即使如果你不生成.class文件,包仍然可以导入,它不会显示任何编译错误(如果U没有指定任何特定的类)。但是,当U尝试使用该包的特定类函数时,它将引发错误。