it-swarm-eu.dev

Produkovat spustitelný jar v NetBeans

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.)
19
Dani

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". 

7
rarchibald

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>

Zdroj: Využití zásuvného modulu Maven Assembly

6
myrho

Zkuste to:

  1. Klikněte pravým tlačítkem myši na projekt na panelu "Projekty", vyberte "Vlastnosti"

  2. Klikněte na "Spustit" v novém okně.

  3. 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ě.

5
kv.

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 :)

4
SMUsamaShah
2
John Ellinwood

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".

1
Xaerxess

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.

1
marktucks

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?

1
Jeff

Manuální vynucení package creation pomocí NetBeans IDE 8.0.2 ...

  1. V navigátoru Project rozbalte <project> a klepněte pravým tlačítkem myši na Project Files/pom.xml
  2. Klikněte na Run Maven/Goals
  3. Do pole Cíle zadejte "balíček"
  4. Klepněte na tlačítko OK

Okno výstupu se pak zobrazí (na počítačích Mac) ...

Building jar: /Users/<username>/NetBeansProjects/<project>/target/<project>-1.0-SNAPSHOT.jar
0
Ken Lin

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
0
l_39217_l

Zde mohou být zajímavé informace:

http://wiki.netbeans.org/FaqNoMainClass

0

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.

0
vuongluis

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ě.

0
Samuel Ventura

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:

http://maven.Apache.org/plugins/maven-jar-plugin/

0
James Kingsbery

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.

0
Rogier