Používám NetBeans 6.5 a z nějakého důvodu nebude produkovat spustitelný jar "mimo krabici".
Nastavil jsem svůj projekt, aby byl hlavním projektem, definoval hlavní třídu v projektu "run" menu a funguje bezchybně, když stisknu F6 spustit.
Podíval jsem se na soubor manifestu a nedefinoval tam hlavní třídu a také vynechal závislosti na knihovně.
Uniká mi něco? Existuje způsob (jiný než ruční změna souboru manifestu) k vytvoření spustitelných souborů jar?
EDIT: ano, snažil jsem se vyčistit a znovu sestavit a vytvořil jar ve složce dist, stále se stejným manifestem.mf
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 10.0-b23 (Sun Microsystems Inc.)
Měl jsem stejný problém v NetBeans 7.2.1 s projektem Maven Java Application. Upravte soubor pom.xml tak, aby obsahoval plugin maven Assembly s jednou odpovědí Tweak na myrho (je třeba odkazovat na předdefinovaný popisovač "jar-with-dependencies"):
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>your.app.MainClass</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-Assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Alternativní metodou je vytvoření projektu Java Application v NetBeans, který nepoužívá Maven. Vyberte File -> Project Properties -> Build -> Packaging a zaškrtněte políčko "Copy Dependent Libraries".
Pokud používáte plugin maven Assembly a chcete vytvořit spustitelnou jar se závislostmi, musíte tuto část přidat do konfigurace sekce maven-Assembly-plugin ve vašem pom.xml:
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<configuration>
<!-- ... -->
<archive>
<manifest>
<mainClass>your.app.SampleClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Zkuste to:
Klikněte pravým tlačítkem myši na projekt na panelu "Projekty", vyberte "Vlastnosti"
Klikněte na "Spustit" v novém okně.
Upravte pole "Hlavní třída:" (klikněte na Procházet).
Tímto způsobem vyberete hlavní třídu, která je vstupním bodem vaší aplikace a Manifest bude vytvořen správně.
Velmi jednoduché, soubory .jar a .jad jsou ve složce dist
Také jsem hledal odpověď a dostal jsem tohle z http://forums.netbeans.org/ptopic3465.html
Vyřešeno :)
Vyčistili jste projekt a znovu vytvořili? Zní to, že to děláte správně. Některé odkazy jsou jen v případě:
http://www.velocityreviews.com/forums/t141385-how-to-create-executable-jar-in-netbeans-ide.htmlhttp: //dr.berkeley. edu/REM/wiki/index.php/Tvorba_a_Java_executable_jar_in_Netbeans
Možná jste vytvořili Java projekt s existujícími zdroji místo Java Application ?
Měl jsem podobný problém a vytváření nových Java aplikací a pak ručně kopírování souborů src problém vyřešil - všechno fungovalo "z krabice".
Měl jsem zkušenosti, že proces budování je jiný, V závislosti na typu projektu.
Předpokládám, že jste vytvořili projekt "Java Class Library".
Takže stačí vytvořit "Java Application" projektu, pak sloučit všechny třídy na to.
Pak bude Netbeans ne přepíše, ale zlepší"manifest.mf"
do JAR.
Samozřejmě, je to hloupá chyba Netbeans. Samozřejmě by mělo být možné přidat hlavní třídy .
EDIT: Viz moje další odpověď. Je to jednodušší.
Pokud čistíte a budujete svůj projekt, měli byste vytvořit jar v adresáři "dist".
Mělo by vytvořit manifest.mf na nejvyšší úrovni adresáře projektu.
Vlastně jsem narazil na tuto stránku po spuštění do stejného problému, upravil jsem soubor manifest.mf, ale změny se nezobrazovaly v souboru jar MANIFEST.MF. Našel jsem problém, který jsem měl, a pomyslel jsem si, že budu předávat informace jen v případě, že je to důležité.
To, co jsem dělal špatně, jsem neměla projekt, na kterém jsem pracovala, jako hlavní projekt, takže když jsem upravovala správný manifest, sestavila jsem špatný projekt.
Takže předpokládám, že krátký příběh jste zkontrolovali a zjistili, zda jste vybrali správný projekt pro soubor manifest.mf, který upravujete?
Manuální vynucení package creation pomocí NetBeans IDE 8.0.2 ...
Okno výstupu se pak zobrazí (na počítačích Mac) ...
Building jar: /Users/<username>/NetBeansProjects/<project>/target/<project>-1.0-SNAPSHOT.jar
Přejděte do zobrazení Soubory. Vytvořte manifest.mf v kořenovém adresáři.
/project_folder
build.xml
manifest.mf(edit here)
/dist
/src
/test
/build
Zde mohou být zajímavé informace:
Lepší řešení:
Upravit nbproject/project.properties a přidat položku :
manifest.file=manifest.mf
manifest.mf
by mělo být v kořenovém adresáři projektu a obsahovat pouze:
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
Funguje. Testováno.
Ok s neatbean můžete udělat následující kroky: 1. Klepněte pravým tlačítkem myši na název projektu vyberte položku Nastavit konfiguraci a vyberte možnost Přizpůsobit
2. Zvolte Spustit a upozornění Hlavní třída
3. Zvolte Procházet a nastavte třídu, pokud chcete spustit. Po klepnutí na tlačítko OK.
4. Dokončit.
V 7.3 stačí povolit vlastnosti/Build/Package/Copy Dependent Libraries a hlavní třída (v závislosti na vybraném cíli) bude přidána do manifestu při tvorbě.
Dalším přístupem zcela je vyvíjet, spouštět testy jednotek atd. V NetBeans, ale pak použít maven nebo mravenčí skript, aby se vaše "skutečné" sestavení. Vypadá to, že tyto druhy nástrojů pro sestavení poskytují větší kontrolu nad tím, jak jsou věci postaveny, a také vám umožní automatizovat sestavení.
V maven můžete snadno přidat položky do manifestu pomocí pluginu maven jar:
Je to opravdu divné, mělo by to udělat z krabice včetně classpath.
Provedli jste upgrade z předchozí verze? Při upgradu bude NB aktualizovat soubory projektu, ale někdy se tato migrace neuskuteční dobře a tento druh scénáře se objeví. Stačí zavřít projekt, přejmenovat nbproject dir na nbproject_old a udělat nový projekt -> Java projekt s existujícími zdroji. Znovu nastavte hlavní třídu a přidejte závislosti a zkuste to znovu.