У меня возникли проблемы с попыткой запустить исполняемый файл jar с помощью make-файла. Любая помощь оценивается.не может выполнить двоичный файл - исполняемый файл Jar
$ ./HelloWorld
-bash: ./HelloWorld: cannot execute binary file
$ file HelloWorld
HelloWorld: Zip archive data, at least v2.0 to extract
$ ls -l
total 32
-rwxr-xr-x 1 myMac staff 773 Jan 17 06:55 HelloWorld
-rw-r--r-- 1 myMac staff 427 Jan 17 06:55 HelloWorld.class
-rw-r--r-- 1 myMac staff 120 Jan 17 05:52 HelloWorld.java
-rw-r--r-- 1 myMac staff 304 Jan 17 05:59 makefile
Это 2 файла, которые я использую.
HelloWorld.java
class HelloWorld{
public static void main(String[] args){
System.out.println("Hello, world!");
}
}
Makefile
HelloWorld: HelloWorld.class
echo Main-class: HelloWorld > Manifest
jar cvfm HelloWorld Manifest HelloWorld.class
rm Manifest
chmod +x HelloWorld
HelloWorld.class: HelloWorld.java
javac -Xlint HelloWorld.java
Это все описано в [материале класса Princeton] (http://www.cs.princeton.edu/courses/archive/spr04/cos126/hello/mac.htm), который также включает в себя ответ. –
@BrianTompsett Спасибо, просто проверил ссылку, которую вы отправили. Однако они используют $ java HelloWorld для запуска HelloWorld.class. Я могу сделать это просто отлично. Я пытаюсь создать исполняемый файл, чтобы только вводить $./HelloWorld для запуска программы. – sweepez
Как сказал Том ниже; все, что описано в классе Принстона, является правильным. Так обстоит дело в мире. Вам действительно нужно проверить у своего преподавателя, почему компьютер вашей школы делает это по-другому. Возможно, они используют другой компилятор Java, который генерирует исполняемый код, но тогда это не стандартный компилятор, который использует остальная часть мира. Нам трудно ответить, когда ваша школа, по-видимому, делает это по-другому; либо это, либо вы что-то неправильно поняли. Единственный способ узнать - спросить в школе. То, что Том и я сказал, правильно; и именно поэтому дал вам ссылку. –