什么会导致bash无法执行在我自己的机器上编写和编译的.jar?

时间:2011-06-30 04:22:01

标签: java macos unix

它昨天运行良好,它与java -jar ...运行良好但是现在当我尝试运行它时,这是我得到的响应:

-bash: ./Shuffle: cannot execute binary file

以下是Makefile的片段:

$(JARFILE): $(CLASSES)
    echo Main-class: $(MAINCLASS) > Manifest
    jar cvfm $(JARFILE) Manifest $(JARCLASSES)
    chmod +x $(JARFILE)
    rm Manifest

我正在运行Mac OS X 10.6.8并尝试重新安装昨天发布的Java for Mac OS X 10.6 Update 5的更新,但没有运气。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我假设Shuffle是你的jar文件的名称。

Bash根本不知道如何执行jar文件。 Jar文件不是可执行文件。它们是zip存档,内部有一些预定义的文件结构。维基百科提供了很好的解释:http://en.wikipedia.org/wiki/JAR_file

要从bash运行jar文件,您可以创建一个bash脚本。一个简单的例子是:

#!/bin/bash

java -jar Shuffle

BTW,因为jar文件不是可执行文件,所以可以从Makefile中删除chmod +x $(JARFILE)