【问题标题】:creating a Jar from java - command passes without any file created从 java 创建一个 Jar - 命令通过而没有创建任何文件
【发布时间】:2015-07-19 09:40:37
【问题描述】:

我正在按照本指南将 .jar 编译为处理库。 但是,我的终端通过 jar cvf 而不创建任何文件。

所以我的文件结构是:

main > com > example > Example.class (and Example.java)

坐在 main 中,我在终端中发出这个命令:

`jar cvf /tmp/example.jar com/`

获得关注:

`added manifest
adding: com/(in = 0) (out= 0)(stored 0%)
adding: com/.DS_Store(in = 6148) (out= 412)(deflated 93%)
adding: com/example/(in = 0) (out= 0)(stored 0%)
adding: com/example/Example.class(in = 864) (out= 600)(deflated 30%)
adding: com/example/Example.java(in = 710) (out= 332)(deflated 53%)`

但没有创建文件。我尝试通过传递此命令来指定类:

`sudo jar cvf /example.jar com/example/Example.class`

但这也无济于事。

【问题讨论】:

  • 检查您打开终端的当前目录并使用pwd 发出命令并查看该文件是否存在
  • 您可以尝试搜索以.jar 结尾的文件吗?这听起来很愚蠢,但也许 JAR 文件已创建,但位于您没想到的位置。
  • 你看过/tmp吗?
  • 你在哪里找的jar文件?为什么第一次使用/tmp/example.jar,第二次使用/example.jar?你知道/代表文件系统的根目录,而不是当前目录吗?

标签: java jar


【解决方案1】:

无法重现您的问题

$ ~/jdk1.8.0_25/bin/jar cvf /tmp/example.jar so

在 Debian 上成功执行,其中so 是终端打开的当前目录的相对路径。对于输出的存在,我使用以下方法检查:

$ ls -l /tmp/example.jar 
-rw-r--r-- 1 popeye popeye 24759 Jul 19 12:47 /tmp/example.jar

您是否在/tmp 目录中查找jar 文件?

【讨论】:

  • 问题是它不想生成这个 tmp 文件夹,但是当我用“example.jar”替换“/tmp/example.jar”时创建了 jar
  • @Casy_fill example.jar 是相对路径,在这两种情况下都是创建的,但输出在不同的目录中
猜你喜欢
  • 2021-09-18
  • 2012-06-29
  • 2011-08-09
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 2015-04-24
  • 2012-10-04
  • 1970-01-01
相关资源
最近更新 更多