moin,
also das kann ich mir nicht erklären :
Habe mit NetBeans 8.1 unter Win10 ein Java-Programm erstellt, das u.a. Daten von USB (geliefert
von einem Arduino nano) liest und mit grafischen Operationen (Flugsimulator) darstellt.
Funzt in NetBeans 8.1. einwandfrei !
Aber das mit launch4j erstellte EXE-File stellt zwar einen grafischen Hintergrund dar,
aber von einer Auswertung der seriellen Daten ist absolut nichts zu sehen bzw zu merken.
Habe den exe-Aufruf in eine bat-Datei gesetzt : keine Fehlermeldungen !?
Vermutlich wird die Fehlermeldung welche passiert geschluckt. Eventuell ist auch die gebaute EXE nicht vollstaendig, und deswegen gibt es einen Fehler.
Also das beste was du machen kannst ist Ausgaben einzubauen und damit verifizieren was aufgerufen wird und was funktioniert (und ob die Ausgabe auf die Konsole funktioniert, Microsoft Windows ist da etwas schwierig was ich mich erinnern kann).
in dem Programm (was nutzt du für Libraries? Wie sieht Dein Code aus? Speziell: was für try/catch Blöcke hast du?)
wie baust Du alles (z.B. das Jar File und was ist dann alles im Jar File drin?)
was rufst du wie auf?
Ohne Details wird man kaum helfen können. Da kann man sonst nur Ratschläge geben wie z.B. ein Logging einzubauen um so mehr Details zum Ablauf zu erfahren und sicher zu stellen, dass keine wichtigen Informationen verloren gehen.
zur Info, was das Programm überhaupt darstellt, mal ein Screenshot ausm cabride..
die Dame zeigt Nicht den Dreckfinger, sondern den Zeigerfinger.. und es ist kein Sexfilm !
Standardmäßig nicht. Wenn man nicht mit jpackage arbeitet, läuft das normalerweise so, dass man ein Jar mit einem Manifest hat, in dem die Main-Class und der Classpath angegeben sind (EDIT: falls es Dich interessiert https://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html). Je nachdem, welche Art von Projekt Du verwendet hast, macht das NetBeans automatisch.
Ich vermute mal, dass Du ein Ant-Projekt verwendest. Dann sollte NetBeans sowieso einen dist-Ordner erstellen und dort sollten sich Dein .jar und ein Lib-Ordner befinden. Wenn Du die Main-Class im Projekt gesetzt hast, solltest Du das Programm aus diesem Ordner eigentlich per Doppelklick starten können.
Du machst ja immer noch den Fehler das du in der Überschriebenen Paint Methode deine get_serial_data() aufrufst.
Und in dieser Methode hast du eine While die endlos läuft.
Du verlässt somit nie die Paint() Methode.
also, ne Bastelei am manifest-File hat jetzt auch nix gebracht..
werd jetzt mal eine extra-applikation bauen, die Nur das Lesen der USB_Schnittstelle behandelt..
dann wird sich das mit der jar-Sache evtl klären..
ist ja n Winterprojekt,habe mer noch Zeit😎
also auch mit der speziellen app : die zusätzliche jar wird von Netbeans 8.1 Nicht eingebunden,
jetzt gibts ne "klare" (?) Ansage mit NotClassDefFound-Exception.
Blicke bei dem manifest-Kram (und pom und maven usw) Nicht durch ...dafür braucht man wohl mehr Gehirn☹️
auch das ..
habe mittlerweile alte java-netbeans-projekte gefunden, wo ich jede menge jars eingebunden habe
also,da muss bei netbeans noch irgendwas gemacht werden zusätzlich zur Einbindung der jComm..jar bei den libs..
weiß aber momentan nicht mehr, was das war..ist schon einige jahre her..
so, jetzt geht in die horizontale..einstweilen guts nächtele🥱
Nur nochmal zur Klarstellung: die Jars werden weder als Ganzes noch inhaltlich in das Anwendungs-Jar eingebettet, sondern im lib-Verzeichnis abgelegt. Das Manifest des Anwendungs-Jars enthält dann einen Verweis auf diese Jars.
Und darin befindet sich das in Netbeans eingebundene Jar? Wenn ja, dann öffnet doch mal das Jar-File aus dem dist-Ordner als Zip und schau Dir mal das Manifest an. Da sollte ein Main-Class- und ein Classpath-Eintrag enthalten sein. Wenn ja, dann lässt sich Anwendung normalerweise auch per Doppelklick ausführen. Alternativ kannst Du mal über die Befehlszeile gehen und in dem dist-Ordner java -jar Commtest1.jar aufrufen.
moin,
war viel unterwegs, deswegen erst jetzt, sorry
es ist ja Nicht das Problem, daß das Porgram Nicht starten würde,sondern daß
die Comm-Schnittstelle nicht funktioniert, wenn das Programm Nicht in NetBeans läuft,
sondern als jar-File..
moin,
mir ist das Nicht klar..möglicherweise ist das File jSerialComm-2.11.0 nicht ok !?
morgen kommt ein 2.PC , da kommt dann auch NetBeans drauf und mein Programm drauf,
dann läuft das unabhängig von allem anderen..
Nebenbei habe ich JavaDoesUSB runtergeladen und probiere das..
Ich hatte deinen Code mal mit InteliJ getestet. Da auch ein jar bauen lassen mit allen libs dependencys. Wurde richtig erstellt und lief auch ohne intellij.
Zeige doch mal das Manifest file was in dem jar enthalten ist. Darum wurde hier ja auch schon gebeten.
Auch wenn dein Projekt kein Manifest hat wird beim bauen des jar ein Standart Manifest erstellt.
Es ist wohl mit netbeans besser ein maven oder gradle Projekt zu benuzen.
In dem Manifest steht doch der verweis zu der lib
.
Java:
Manifest-Version:1.0Ant-Version:ApacheAnt1.9.7Created-By:1.8.0_171-b11 (OracleCorporation)Class-Path: lib/jSerialComm-2.11.0.jar
X-COMMENT:Main-Class will be added automatically by build
Main-Class: com_test.Com_test
Einen Lib Ordner hast du auch.
Also wenn ich das Jar starte bekomme ich auch die erwartete Ausgabe
System.out.println("USB not connected ?");
Da es bei mir in dem Array der erste Eintrag ist "0"
comPort = SerialPort.getCommPorts()[0]; "0" ist mein USB-Serial Adapter was dann die Com 3 ist
dann bekomme ich auch.
System.out.println("USB-Port " + comPort.getDescriptivePortName())
Somit läuft deinen Programm.
Wenn du dein Programm weiter geben willst musst du auch den Lib Ordner mit weiter geben.
Bei IntelliJ wurde mir die Lip mit in das Jar gepackt. Das Jar war dann ca 890 KB
Textbasierte Java-Programme lassen sich recht einfach in ausführbare jar-Dateien einbauen, die wir dann auch unabhängig von der IDE starten können. Wie das funktioniert, zeigen wir dir in diesem Tutorial.
Moin
IntelliJ gefällt mir für die Java-Programmierung besser als NetBeans oder Eclipse
Frage an JW456 :
Ich programmiere ja rein privat, fand aber hinsichtlich Community-Edition für IntelliJ
nur eine 1-Monat-Trial-Veriante.
Gibts da noch eine andere Möglichkeit ?
Ich programmiere ja rein privat, fand aber hinsichtlich Community-Edition für IntelliJ
nur eine 1-Monat-Trial-Veriante.
Gibts da noch eine andere Möglichkeit ?
Du hast dann die IntelliJ Ultimate Version herunter geladen und nicht die Community Edition. Die Ultimate ist kostenpflichtig und es gibt diese Trial Version.
Die Community Edition ist komplett frei und Open Source. Da gibt es keine Trial Version. Du musst also nur beim Download aufpassen, dass Du die richtige Version herunter lädst.
Auf der Download-Seite kommt erst der Download für die Ultimate Version und darunter der Download für die Community Version: