Wird Java kompiliert in windows in Linux funktioniert?
Mein Java-Programm ist in Ordnung, wenn ich es unter Windows(Eclipse und Bluej). Ich komprimieren Sie es in eine Jar und schicken Sie es an meinem roten Hut und bang. nichts funktioniert. Es bricht auf die verrücktesten Dinge, wie text Feld text wird nicht angezeigt, JPasswordfield einfach verschwunden, Java AWT ROBOT stirbt auch... die Liste geht weiter, zuerst dachte ich, es muss sein, meine Linux-JRE ist veraltet, aber installierte ich die neueste JRE dann das JDK mit keine Besserung. Ich habe das Gefühl, dass ich miss verstanden, die Java cross-Plattform-Fähigkeit. Ich habe auch versucht zu löschen, alle meine Funktionen und Eingeweide zu sehen, was ist zu brechen, aber es scheint, dass jede zweite Sache ist, zu brechen, andere als die einige der wichtigsten GUI-Komponenten und die meisten der back-end-Zeug. grundsätzlich ist jede Sache, die verwendet, was einige Phantasie wird blowup in mein Gesicht, wie ein text-Feld, um ein Passwort-Feld...
Dies ist mein erstes mal 😉 bitte sei nett zum Neuling!!!
Dank!!!
GELÖST!!!
Yay. Problem gelöst!!! Es war, weil meine Java-Pfad nicht gesetzt, also mein GCC/GCJ sprang stattdessen von my oracle java, auch wenn ich java -jar xxx.jar. also ich habe in der java-directory-Pfad von meiner java-jar xxx.jar und funktioniert wie ein Charme. es sei denn, Sie legen Sie den Pfad, die Sie haben, um dies manuell tun
/usr/java/jdk1.6.0_21/jre/bin/java-jar xxxxx.jar
java -version um zu überprüfen, ob Ihr echte java ausgeführt wird, oder wenn es s immer noch GCJ
- Es ist cross-Plattform (z.B. müssen Sie nicht neu kompilieren, Gläser), aber es gibt noch einige Macken, so haben Sie zu kümmern. Sollten Sie post ein relativ kleines Programm, das zeigt, Probleme auf Linux.
- Meine Erfahrung in 1.4 wurde SWING eigentlich nicht tragbar, aber ich kann nicht sprechen für Versionen da. AWT war etwas sicherer...
- Swing ist sehr portabel. Die Probleme, die Menschen haben (als in Steuerelemente nicht Schlange richtig) hat mehr zu tun mit der Programmierer nicht mit layouts propertly.
- Welche JRE benutzt du unter Linux? Wenn Sie installiert haben die Oracle JRE, sind Sie auch sicher, dass Sie tatsächlich nutzen es und nicht eine andere JRE, die war im Lieferumfang Ihrer Linux-distribution und durch Zufall gefunden wird, zuerst in den Pfad (verwenden Sie "java -version" zu überprüfen)?
- wie funktioniert der awt-Roboter sterben? Die javadoc-Staaten, die brauchst du möglicherweise Besondere Berechtigungen zum starten und aktivieren Sie eine Erweiterung des x Window system. Dies ist nicht ein Fehler mit java aber ein linux-security-Messen.
- meine linux-Kiste nur aktualisiert, mit der oracle JRE, mein PC ist problly einige zufällig fand ich vor langer Zeit. Ich nehme Thorbjørn Ravn Andersen beraten und kompilieren Sie das Programm auf meiner Linux-box.
- Yay. Problem gelöst!!! Es war, weil meine Java-Pfad nicht gesetzt, also mein GCC/GCJ sprang stattdessen von my oracle java, auch wenn ich java -jar xxx.jar. also ich habe in der java-directory-Pfad von meiner java-jar xxx.jar und funktioniert wie ein Charme. es sei denn, Sie legen Sie den Pfad, die Sie haben, dies zu tun manuell /usr/java/jdk1.6.0_21/jre/bin/java-jar xxxxx.jar verwenden Sie java -version um zu überprüfen, ob Ihr echte java ausgeführt wird, oder wenn es s immer noch GCJ
- sollten Sie versuchen, führen Sie "update-alternatives --config java", "update-alternatives --config javac", um die standardmäßige jvm
Du musst angemeldet sein, um einen Kommentar abzugeben.
Linux-Anwender oft führen Sie java-Programme mit gcj anstelle von java. Überprüfen Sie, dass Sie eine richtige ausführbare Datei.
Überprüfen Sie, dass die Verwendung von Sun (Oracle) JRE auf Ihrem Linux-Rechner und nicht einige 3rd-party-Java-Implementierung wie gcj oder ähnliches.
In meiner Erfahrung, die Java-Anwendungen sind durchaus tragbar, solange man auf der gleichen JVM/Laufzeit Hersteller auf jedes Ziel SO, aber Java-Implementierungen von verschiedenen Anbietern möglicherweise Verhalten sich Verschieden von einander.
java -jar JarName
🙂which java
um herauszufinden, welche java-Befehl ist tatsächlich aufgerufen wird.Ja. Die Klassen-und jar-Formate sind absichtlich plattformunabhängig.
Sind Sie absolut sicher sein, dass Ihre jar-Datei kopiert wurde korrekt auf Ihrem Linux-Rechner? Wenn man ftp verwendet, ist es von entscheidender Bedeutung, um zu verwenden, Binär statt ascii übertragen.
Ist Ihre Anwendung unabhängig von anderen externen Bibliotheken, die Sie brauchen auch auf Ihrem Linux-Rechner?
Java sagt: "Write once, run anywhere".
Benutzt du KDE? Welches Thema? Ich hatte ein Problem gestern, dass das Thema "Cleanlooks" hat eine Menge bugs Rendern von widgets. Versuchen Sie Es Mit "Sauerstoff".
Wenn Sie können, versuchen Sie, den code auf einer anderen Linux-box (vielleicht hat es ein hardware-defekt vor). Run "memtest" (sollte eine option in den boot-loader auf Ihrem Rettungs-CD).
Swing sollte vollständig portabel ist. Versuchen Sie es mit den Metall-look und das Gefühl, die breit unterstützt wird. Ich habe meine Zweifel, ob
java.awt.Robot
wenn und wäre nicht überrascht, wenn das war die Quelle Ihrer Probleme.Ich habe eine Swing-app, die ich verteilt über die Java Web Start, dass ich noch nicht aktualisiert, seit 2004, von denen ich weiß immer noch funktioniert gut auf Mac OS X, Windows und Linux. Ich habe es nur den anderen Tag, weil jemand mir per E-Mail eine Frage. Es wurde ursprünglich geschrieben, auf Windows, hat aber nie gezeigt, keine Probleme auf anderen Betriebssystemen oder auch in viel späteren Versionen von Java.
Die JVM stellt eine sehr Wettbewerbsbedingungen für eine Vielzahl von Plattformen und die Java-API ist gut umgesetzt, um die gleiche Arbeit und die gleiche Funktionalität. Meine Wette ist, dass Sie finden werden, dieses problem ist etwas völlig ohne Beziehung zu Ihrem Java-code. Neben dem Vorschlag, zu versuchen, Ihre app auf einem anderen Computer mit dem gleichen OS, sicher sein, zu versuchen, anderen Menschen die Java-Anwendungen laufen auf der einen, das gibt Probleme. Versuchen Sie, meine eigenen HotSheet: http://www.johnmunsch.com/projects/HotSheet/ oder ein Spiel wie Taschenspielerei: http://roguelikefiction.com/?page_id=6 um zu sehen, ob diese funktionieren wird.
Unter linux könnte es entscheidend sein, verwenden Sie das Sun JDK/JRE und nicht das openjdk, das ist ein Umsetzung der offizielle sun-java-jdk. Es könnte also sein, dass, wenn auch nicht sicher.
Java ist sehr transportabel. Chancen sind Ihr VM ist anders. Obwohl die Open-Source-VMs sind immer sehr gut, ich empfehle versuchen, mit Sun ' s VM--ich hatte noch nie ein problem mit dem ausführen eines code.
Auch, wenn Sie keine Bibliotheken mit Computer-Sprache Komponenten, die unterschiedlich sein müssen (ich habe bemerkt, diese mit einigen Grafik-Bibliotheken, call-through auf der Plattform 3d-subsystem)
Aber Java selbst WIRD der port einfach zu jedem system, das die gleichen Bibliotheken und eine gute VM Sehr Gut-ich mache es die ganze Zeit und das seit zehn Jahren und haben buchstäblich nie ein problem hatte. Dies ist mit client - /server-Systeme, auf denen die clients und server auf verschiedenen Plattformen, PC/Mac & Unix und sogar eingebettete Systeme-Zeug nur ports.
Nun, applets laufen in verschiedenen Browsern, oder optisch, der versucht, die Schriftarten auf Maschinen, die nicht enthalten die gleiche schriftart-Nichts wird Ihnen helfen, es.