Проблемы с созданием исполняемого файла Jar Java - PullRequest
1 голос
/ 16 августа 2010

У меня есть следующий код Java.Он делает то, что должен, но у меня возникают проблемы при создании файла jar.

import java.io.*;
public class openfile{
    public static void main(String argv[]) {
        try {
                String line;
                Process p = Runtime.getRuntime().exec
                ("c:\\Users\\user\\Desktop\\"+ "shares.bat /A");
                 BufferedReader input =
                 new BufferedReader
                 (new InputStreamReader(p.getInputStream()));
                 input.close();
                }
           catch (Exception err) {
                  err.printStackTrace();
               }
    }
}

Он не компилирует, не запускает никаких проблем при использовании java openfile.Проблема возникает, когда я пытаюсь создать файл jar, используя следующие команды:

  jar cf MyJar.jar manifest.txt openfile.java openfile.class

Однако, когда я пытаюсь запустить jar, используя

java -jar MyJar.jar

, я получаю следующее сообщение об ошибке:

Failed to load Main-Class manifest attribute from MyJar.jar

Текст файла manifest.txt выглядит следующим образом:

Main-Class: openfile 

Есть идеи, что я делаю неправильно?

Ответы [ 3 ]

2 голосов
/ 16 августа 2010

У меня проблема, я верю.

В вашем файле manifest.txt

Текст файла manifest.txt выглядит следующим образом:

Main-Class: openfile 

Вам необходимо указать разрыв строки после последней строки

Так что просто введите Enter (<-) (возврат каретки) после этой строки. </strong>

Main-Class: openfile 

См. эту солнечную документацию. вот выдержка.

Предупреждение: текстовый файл должен заканчиваться новая строка или возврат каретки. Последний строка не будет проанализирована должным образом, если она не заканчивается новой строкой или возврат каретки.

Я проверил это, и оно работает. Надеюсь, это поможет.

0 голосов
/ 17 августа 2010

Содержимое вашего файла манифеста должно быть таким:

Версия манифеста: 1.0
Основной класс: openfile

Пустая строка должна быть оставлена ​​после этих двух строк, как невыход из него может создать проблему.

0 голосов
/ 16 августа 2010

Предположим, у вас есть класс openfile с объявленным методом main, тогда это должно работать:

jar cvef MyJar.jar openfile openfile.class

Если у вас уже есть манифест и вы хотите включить его, попробуйте следующее:

jar cvmf MyJar.jar manifest.txt openfile.class
...