我有一个用maven构建的小应用程序:使用“java -jar executable.jar”执行Jar即可,但即使具有执行权限,“./executable.jar”也会返回“Bad Magic Number”
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>be.scripts.batchconverter.MainScript</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>create-executale-jar</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>batchconverter</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
我可以用“Java的罐子batchconverter”运行它,但是当我尝试用“使用chmod + X batchconverter.jar”,然后“./batchconverter.jar”来执行它,我得到这个通用的错误:
invalid file (bad magic number): Exec format error
我的JDK是oracle,“1.8.0_121”,我已经安装了binfmt-support,并且正在运行一个ubuntu 16.04
这里是清单:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: jschoreels
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_121
Main-Class: be.scripts.batchconverter.MainScript
和LS造成(证明X许可)
-rwxrwxr-x 1 jschoreels jschoreels 4,9M Mär 7 11:40 batchconverter.jar
任何想法,以确定原因?
我认为你可以只执行其他语言如bash,C/C++,而不是你可以用内容java -jar ex.jar编写执行脚本execute.sh,然后chmod a + x execute.sh等./execute。 sh可能会工作 – HRgiger