2013-12-12 4 views
1

у меня есть:Почему у меня нет атрибута «нет атрибута манифеста», создающего банку из antfile Eclipse?

src/Testy.java 
projectBuilder.xml 

Testy.java содержит:

public class Testy { 
    public static void main(String[] args){ 
     System.out.println("Hey Dudes"); 
    } 
} 

И projectBuilder.xml содержит:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="Supercool" default="doit" basedir="."> 
    <target name="doit" description="Make a jar file"> 
     <mkdir dir="jars" /> 
     <jar destfile="jars/Testy.jar" basedir="bin" /> 
    </target> 
</project> 

Когда я бегу antfile внутри Eclipse (после построения проекта в Eclipse) он создает банку, содержащую Testy.class, и папку META-INF, содержащую файл MANIFEST.MF, который содержит:

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.8.4 
Created-By: 1.7.0_45-b18 (Oracle Corporation) 

Запуск java -jar Testy.jar производит:

no main manifest attribute, in jary\Testy.jar

Почему это, и что мне нужно сделать, чтобы исправить это?

ответ

1

Как начертили на предыдущий ответ, mosttutorials являются неполными. Правильная вещь, чтобы сделать, это изменить <jar /> тег к этому:

<jar destfile="jars/Testy.jar" basedir="bin"> 
    <manifest> 
     <attribute name="Main-Class" value="Testy" /> 
    </manifest> 
</jar> 

и затем можно запустить с помощью java -jar Testy.jar.

0

Необходимо указать, какой класс следует запускать при использовании -jar. Добавьте дочерний элемент манифеста в ваш jar-вызов, как указано в http://ant.apache.org/manual/Tasks/jar.html, и там обозначьте имя вашего основного класса, как описано в http://ant.apache.org/manual/Tasks/manifest.html. Имя атрибута, которое вам нужно, это «Main-Class».

+0

Вы имеете в виду, что мне нужно вручную создать манифест? Я не видел этого шага в этом уроке (http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html) –

+0

Вы должны указать, что еще вы хотите в манифесте, который * is * в этом руководство. Содержимое файла Ant, показанное в разделе «Четыре шага к запущенному приложению», точно показывает эту часть. – nitind

Смежные вопросы