2016-04-27 1 views
0

Когда я исполняю .jar с этой командной строкой (это команда нашла в сценарии):Разница между этими двумя командами для выполнения .jar?

./MyJar.jar AUTO 

У меня есть эти ошибки:

./MyJar.jar: 1: ./MyJar.jar: PK: not found 
./MyJar.jar: 2: ./MyJar.jar:: not found 
./MyJar.jar: 3: ./MyJar.jar: ��H: not found 
./MyJar.jar: 4: ./MyJar.jar:: not found 
./MyJar.jar: 5: ./MyJar.jar: Ant-Version:: not found 
./MyJar.jar: 6: ./MyJar.jar: Syntax error: "(" unexpected 

Но когда я исполняю с этой командной строкой, это работает:

java -jar MyJar.jar 
  1. Мой первый вопрос: «? в чем разница между этими двумя командной строки»
  2. Мой второй вопрос: «Почему я не могу выполнить MyJar.jar с первой командной строкой?»
+1

Почему вы не используете Google, чтобы найти, как запускать файлы jar? Jar не является исполняемым файлом. Это всего лишь java-архив и требует запуска java-luncher. Вот почему вам сначала нужна команда java. – mariusz2108

+0

Ну, собственно, первая командная строка работает на коллеге, но не на моей. Я хочу знать, почему. Я ничего не нашел о первой команде в Google. – bam500

+0

Прочитайте [Как сделать JAR-файл Linux исполняемым] (https://coderwall.com/p/ssuaxa/how-to-make-a-jar-file-linux-executable) – Andreas

ответ

1

Я нашел ответ на свой второй вопрос. Для того, чтобы быть в состоянии выполнить мой сосуд таким образом:

./MyJar.jar AUTO 

Мне нужно установить пакет binfmt-поддержки:

sudo apt-get install binfmt-support 

Как упоминалось в этой теме: https://askubuntu.com/a/291514

1

нормально, если пытаться любой файл выполнить непосредственно содержимое файла заголовка файла терминала Linux, должно быть идентифицировано ОС. , например:

#!/bin/bash 
echo "Hello World" 

или

#!/usr/bin/python 
print "Hello World" 

вы можете увидеть OS поймёт 1-скрипт должен быть запущен/бен/Баш интерпретатором и 2 является интерпретатор питона.

кажется OS не понимает, как выполнить ваш файл ./MyJar.jar. , но jar может напрямую понимать содержимое вашего файла

+0

Спасибо @FariZ за ответ. Вы ответили на мой первый вопрос! – bam500