Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wie kann ich mein Netbeans-Projekt in eine einziege jar-Datei packen? Bei
Eclipse geht das auf Knopfdruck. Bei Netbeans dagegen, erhalte ich einen Ordner mit
Konfigurationsdateien und den Quelltexten.
Das mit dem dist Verzeichnis ist mir schon klar. Aber die jar datei benötigt alle daten aus dem
projektordner. Ich wollte wissen, wie man jar dateien erzeugt, die alleine existieren können und
allein ausführbar sind. Wenn ich auf build klicke, erhalte ich eine ganze ordnerstruktur. Ich benötige
aber eine einzige jar datei, mit der ich das projekt ausführen kann.
Sowas wie das FatJat -PlugIn in Eclipse gibts bei NetBeans meines Wissens nicht.
Aber das muss kein Nachteil sein, denn so bleiben die externen Bibliotheken austauschbar.
Die standardmäßig von NetBeans erzeugte JAR Datei, die im Verzeichnis "dist" erstellt wird, enthält "nur" die eigenen Projektdateien. Externe Bibliotheken landen im Unterverzeichnis "lib".
Diese lassen sich aber auch in die JAR mit einbinden!
Im "Projects" Fenster müssen dafür die die benötigten Bibliotheken via Drag&Drop vom "Libraries" Baum in den "Source Packeges" gezogen werden. Dadurch kopiert NetBeans die einzelnen CLASS Dateien ins Projekt Verzeichnis und packt diese dadurch später auch in die JAR Datei.
bin bei einem ähnlichen Problem auf diesen Thread gestoßen.
Ich verwende swingX components in meiner Anwendung.
Nun möchte ich die Anwendung in einer einzigen .jar Datei verteilen.
Leider packt er die swingX Dateien in den "lib" ordner und nicht mit in die jar Datei.
Via Drag&Drop lässt sich die Lib auch nicht in den SourceOrdern verschieben?
Kann mir da vielleicht einer weiter helfen???
Aber natürlich...
das Workaround ist folgendermaßen:
Im PROJECTS Fenster (links) sind ja die Dateien innerhalb der Packages aufgelistet. Unter SOURCE PACKAGES sind deine Quellcodes zu finden, unter LIBRARIES sind zusätzliche Libraries, wie z.B. das von dir verwendete SWINGX zu finden. Wenn du nun auf die Titelleiste von PROJECTS klickts gibt es die Auswahlmöglichkeit VIEW JAVA PACKAGES AS - dieses muss auf TREE gestellt werden, dann wechselt die Ansicht in einen Verzeichnis-Modus. Nun kann per Drag&Drop die SWINGX Library in SOURCE PACKAGES gezogen und somit kopiert werden.
Lässt Du nun das Project erstellen, wird eine JAR Datei erstellt, die alleine lauffähig ist. Bitte beachte, dass der LIB unterordner mit den Librarys dennoch erstellt wird. Zum Ausführen wirddieser aber nicht benötigt.
Klar soweit? ;-)
Das ist richtig, nach dem Drag&Drop und dem resultierenden Kopieren muss im SOURCE PACKAGE auch ein neuer Ordner erscheinen... (org.jdesktop.swingx oder sowas...)
Im PROJECTS Fenster (links) sind ja die Dateien innerhalb der Packages aufgelistet. Unter SOURCE PACKAGES sind deine Quellcodes zu finden, unter LIBRARIES sind zusätzliche Libraries, wie z.B. das von dir verwendete SWINGX zu finden. Wenn du nun auf die Titelleiste von PROJECTS klickts gibt es die Auswahlmöglichkeit VIEW JAVA PACKAGES AS - dieses muss auf TREE gestellt werden, dann wechselt die Ansicht in einen Verzeichnis-Modus. Nun kann per Drag&Drop die SWINGX Library in SOURCE PACKAGES gezogen und somit kopiert werden.
Lässt Du nun das Project erstellen, wird eine JAR Datei erstellt, die alleine lauffähig ist. Bitte beachte, dass der LIB unterordner mit den Librarys dennoch erstellt wird. Zum Ausführen wirddieser aber nicht benötigt.
Also ich benutze Netbeans 6.1 und da kann ich auf Projects klicken soviel ich will da passiert nichts. Ich finde das leider nicht.
Wenn ich auf meine.jar Datei doppelklicke (Windows) dann kommt folgende Fehlermeldung "Could not find the main class. Program will exit" ich habe aber unter den Projects Einstellungen die main class angegeben.
In meinem Fall "projekt.GUI"
Code:
public class GUI extends javax.swing.JFrame {
//Null initalisieren
Projekt projekt = null;
GLCanvas canvas = null;
Animator animator = null;
/** Creates new form GUI */
public GUI() {
initComponents();
canvas = new GLCanvas(); // Canvas instanzieren
projekt = new Projekt(this);
canvas.addMouseMotionListener(projekt);
canvas.addGLEventListener(projekt);
canvas.addMouseListener(projekt);
canvas.addKeyListener(projekt);
canvas.setSize(1024,768);
getContentPane().add(canvas); // Canvas der Oberfläche hinzufügen
canvas.requestFocusInWindow(); // Focus für Tastatur in Canvas transferieren
animator = new Animator(canvas);
animator.start(); // OpenGL-Animation starten
pack();
}
Die Klasse GUI hat ja auch keine main(...), da kann Netbeans noch so viele Jars erstellen...
Bau in deine Klasse GUI eine main(...) ein z.B:
Code:
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new GUI.setVisible(true);
}
});
}
Sollte Netbeans automatisch so machen wenn Du von Anfang an damit gearbeitet hast.
Wenn du das ganze als eigene Application haben möchtest, dann brauchst Du ein neues Project, also die Funktionalität auslagern (eigenes *.jar) Kann man auch von hier aus aufrufen
(Zur besseren Übersicht gibt es auch Project Goups)
Zur Einbindung von eigenen Komponenten und deren Benutzung
in Netbeans möchte ich zuallererst auf diese sehr hilfreiche Seite verweisen :
Wenn noch Probleme mit Netbeans oder dem GUI.Builder Matisse bestehen sollten, dann bitte weiter fragen
Antworte gerne wenn ich Zeit habe...->
GUIBuilder sind nicht immer das beste Mittel der Wahl, aber wenn man weiß, wie man Sie seinen Bedürfnissen anpasst, und damit umgehen kann, warum nicht.
Das Du auf die *.jar klickst und nix passiert hat nix mit Java zu tun, sondern eher mit der "Manifest-Datei" weil
der Parameter "Main-Class: package...." dort nicht stimmt. Es gibt ja keine main...;>