2012-05-08 14 views
12

Co naprawdę muszę jest odpowiednikiem tego z Eclipse z Netbeans:Netbeans Eksport do Jar, obejmują wszystkie pliki bibliotek

enter image description here

Chcę Extract required libraries into generated JAR więc mogę rozpowszechniać bez konieczności w tym folder lib wszędzie, gdzie się znajduje.

Oto oryginalne pytanie.

Próbuję zbudować słoik z Netbeans, który zapakuje wszystkie znajdujące się w nim pliki biblioteki. Słyszałem, że jest to możliwe w Eclipse, wybierając Export. W Netbeans, jeśli "Clean and Build" utworzy plik wykonywalny w folderze dist, ale wszystkie biblioteki, od których zależy, znajdują się w folderze o nazwie lib. Potrzebuję tego, aby znaleźć się w jednym pliku jar. Myślę, że ma to związek z plikiem build.xml. Oto co mówi mój. Co ja tu robię źle?

Dzięki za pomoc.

<?xml version="1.0" encoding="UTF-8"?> 
<project name="BONotifier" default="default" basedir="."> 
    <description>Builds, tests, and runs the project BONotifier.</description> 
    <import file="nbproject/build-impl.xml"/> 
    <target name="-post-jar"> 
    <jar jarfile="dist/Combined-dist.jar"> 
     <zipfileset src="${dist.jar}" excludes="META-INF/*" /> 
     <zipfileset src="lib/commons-io-1.4.jar" excludes="META-INF/*" /> 
     <manifest> 
     <attribute name="Main-Class" value="controller.MainController"/> 
     </manifest> 
    </jar> 
    </target> 
</project> 

Aktualizacja: Powyższy kod jest w build.xml. Poniżej znajduje się plik build-impl.xml. Zgaduję, że oznacza to, że plik build.xml jest uruchamiany podczas kompilacji -programm.xml.

<target name="-pre-init"> 
    <!-- Empty placeholder for easier customization. --> 
    <!-- You can override this target in the ../build.xml file. --> 
</target> 

Uwaga mam to z tego forum.

+0

Spróbuj dodać to zadanie jar do "nbproject/build-impl.xml", gdzie znajduje się zadanie tworzenia słoika. –

+0

Proszę zobaczyć aktualizację. – kentcdodds

+0

Zobacz aktualizację ponownie :) – kentcdodds

Odpowiedz

15

Wolę this rozwiązanie, ponieważ nie ma nic do pobrania, wszystko oparte na kompilacji Ant (~ 20 linii). W ten sposób nie ma dodatkowej zależności. Jeśli masz kilka minut, możesz dowiedzieć się również o Ant.

Wygląda na to, że link do oryginalnego artykułu jest uszkodzony (dzięki Oracle). Oto kolejny link.

Oryginalny artykuł jest również dostępny w Oracle link.

+0

Pracował jak urok. Dzięki :) – kentcdodds

+3

@ user845279 Ten link jest zepsuty. Czy istnieje szansa na jej naprawienie lub podanie odpowiednich informacji bezpośrednio w Twojej odpowiedzi? – gnomed

+0

@gnomed Zaktualizowałem link, proszę zaktualizować moją odpowiedź, jeśli potrafisz parafrazować rozwiązanie. – user845279

-1

Nie ma wbudowanego sposobu, aby to zrobić. Można jednak użyć zewnętrznych narzędzi do archiwizacji to jak OneJar:

http://one-jar.sourceforge.net/

EDIT: Najwyraźniej jest to nawet sposób, w jaki zespół Netbeans spodziewa się, aby to zrobić: http://wiki.netbeans.org/PackagingADistributableJavaApp

+0

Proszę zobaczyć aktualizację. – kentcdodds

+0

Widzę twoją aktualizację. Wciąż polecam ci pójść na OneJar. Jest bardziej wszechstronny, plus, zobacz moją edycję: 9 – bluehallu

4
  1. Otwórz generowane słoik z 7zip (lub innych narzędzi)
  2. Dodaj bibliotekę jar w folderze
  3. Edycja manifest ustawić ścieżkę klasy
1

Ok, więc jest to mój rozwiązanie. Ja też miałem problem z kompilacją mojego programu i działaniem na Netbeans, ale to się nie udawało, gdy próbowałem Java -jar MyJarFile.jar Teraz nie w pełni rozumiem Mavena i myślę, że to było kłopotliwe, aby Netbeans 8.0.2 zawarł mój słoik plik w bibliotece, aby umieścić je w pliku jar. Myślałem o tym, jak użyłem plików jar bez Mavena w Eclipse.

To Maven, który kompiluje wszystkie zależne i wtyczki. Nie Netbeans.(Jeśli możesz zrobić Netbeans, aby to zrobić, powiedz nam, jak (^. ^) V)

[Rozwiązano - dla Linuksa], otwierając terminal.

Następnie

cd/MyRootDirectoryForMyProject

Następny

mvn org.apache.maven.plugins: Maven-compiler-plugin: kompilacji

Dalej

mvn zainstalować

Spowoduje to utworzenie pliku jar w katalog docelowy.

MyJarFile-1,0-jar-z-dependencies.jar

Teraz

cel cd

(Być może trzeba uruchomić: chmod + x MyJarFile-1.0-Jar-z-zależności. jar) I wreszcie

java -jar MyJarFile-1,0-jar-z-dependencies.jar

proszę zobaczyć

https://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException

Zamieszczę to rozwiązanie na kilku innych stronach o podobnym problemie. Mam nadzieję, że uda mi się uratować kogoś od tygodnia frustracji.

Powiązane problemy