我不能强迫jar将目录内容(递归)打包到.jar文件。这听起来有点像是基本的事情,但是有点尴尬,但是至少我现在有一个关于为什么不喜欢Java的论点。

我的项目文件夹中有一个bin目录。该目录在各个文件夹中包含.class文件:



我想创建一个在根目录中具有这些文件和目录的jar文件。结构应保持不变。我可以使用7z七个zip命令执行此操作:

cd bin
7za a -r sample3.jar *.*


但是Java一点也不喜欢。令我惊讶的是诸如添加所有目录内容之类的功能是如此的隐藏。

这是我尝试的:


jar cf sample3.jar bin/*jar cf sample3.jar bin创建的jar在根目录中包含bin目录,而不是包含的目录
这将创建仅包含META-INF的jar文件:

cd bin
jar cf sample3.jar *.*

同样的问题:

cd bin
jar cf sample3.jar *.class



有没有一种简单的方法可以将所有目录内容添加到JAR?这就是我要的:

最佳答案

如果从bin目录运行,请尝试此操作

jar -cfv samples.jar . *.class


  c-创建一个名为jarfile(如果指定了f)的新归档文件,或者创建一个标准输出(如果省略了f和jarfile)。
  
  f-指定要创建(c),更新(u),提取(x),索引(i)或查看(t)的文件jarfile。 -f选项和文件名jarfile是一对-如果存在,则必须同时出现。
  
  v-将详细输出生成为标准输出。
  
  inputfiles(。/*.class)-用空格分隔的文件或目录,将组合成jarfile(对于c和u),或者从jarfile中提取(对于x)或列出(对于t)。所有目录都是递归处理的。

09-30 18:36
查看更多