мой файл .jar ничего не сделает - PullRequest
0 голосов
/ 21 апреля 2010

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

в общем

class Fun 
{


       string[] namestrings = new string[#] 

       constructor() 
       { fill with some strings} 

       public static void main (String[]arg) 
       { 
            create instance of class
            do some junk with it 
            method that prints it 
       } 
       method that prints it {} 
       another method 
    } 

когда я компилирую и запускаю его в командной строке, он работает нормально, но когда в командной строке я набираю jar -cf Happy.jar Fun.class

я получаюфайл .jar с именем Happy, и когда я нажимаю на него, я получаю сообщение об ошибке, которое гласит: «Файл java Jar не может быть запущен, прочитайте консоль для возможных сообщений об ошибках». У меня есть Mac.различию.В чем дело?

Ответы [ 4 ]

3 голосов
/ 21 апреля 2010

Иметь файл manifest.mf со следующим содержимым и упаковать его в файл JAR как META-INF / manifest.mf

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 14.3-b01 (Sun Microsystems Inc.)
Main-Class: Fun

Затем вы можете выполнить ваше приложение, используя

java -jar Happy.jar

IDE обычно делает это автоматически для вас, если вы создаете свой проект как Java-приложение.

2 голосов
/ 21 апреля 2010

Вы также можете добавить атрибут Main-Class в манифест JAR. Тогда вы можете просто сделать это

java -jar Happy.jar

См. это .

1 голос
/ 21 апреля 2010

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

В вашем случае это звучит глупо, потому что у вас есть только один класс, а полнофункциональные Java-приложения могут иметь сотни.

Чтобы сделать это, добавьте специальный файл с именем manifest, в котором вы сообщаете банку: эй, это класс, который вы должны запустить.

Так попробуйте это:

// HelloWold.java
// you know 
public class HelloWorld {
    public static void main( String [] args ) {
       System.out.printn("Look, I'm running");
    }
 }

Сохранить в HelloWorld.java

Скомпилируйте

$javac HelloWorld.java 

Создайте файл manifest.mf с этим содержимым:

  Main-Class: HelloWorld

И все вместе.

 $jar -cmf manifest.mf  yourJar.jar HelloWorld.class

Файл с именем yourJar.jar создан.

Теперь, если вы дважды щелкните по нему, он запустится, но он исчезнет мгновенно, вы можете запустить его из команды, например, набрав:

 $java -jar yourJar.jar 

И сообщение появится в консоли.

Надеюсь, это поможет.

0 голосов
/ 21 апреля 2010

Вам не нужен файл .class в вашей команде. Итак:

java -jar Happy.jar Fun
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...