我从一堆java文件中创建了一个jar文件。文件夹结构为org/ax/redis
。我使用了命令jar cvf jedis.jar org/*
。然后我在我的netbeans项目中导入了这个jar文件。然后当我尝试从中导入类时,编写import org.ax.redis.*
。但是,netbeans显示没有这样的包存在的错误。
现在我打开了另一个log4j的jar文件,看看它是怎么来的。唯一的区别在于清单文件。它有一堆指令,如Name: org/apache/log4j/
。所以我通过包含Name: org/ax/redis/
为我的jar文件创建了一个清单文件。使用此命令在jar jar cvfm jedis.jar META-INF/manifest.txt org/*
中添加清单信息。仍然没有任何作用请帮帮我
答案 0 :(得分:0)
即使你没有生成.class文件,仍然可以导入包,它不会显示任何编译错误(如果你没有指定任何特定的类)。但是,当U尝试使用该包的特定类函数时,它将引发错误。
答案 1 :(得分:0)
Jar文件通常包含类文件(编译结果)而不是源文件(* .java)。虽然某些jar文件可能包含两者,但只有类文件可用于编译或运行(例如,使用-cp library.jar
)。
基本上,在构建jar文件之前,需要编译代码 - 然后将类文件包含在jar文件中。如果您也包含源文件(在相同的目录结构中),那么某些IDE可能能够检测到这些,这可能很有用。