Va Java compilé sous windows sous Linux?
Mon programme Java est en ordre de marche quand je l'utilise sous Windows(Eclipse et Bluej). Je compresser dans un Bocal et l'envoyer à ma red hat et bang. rien ne fonctionne. Il se brise sur la plus étrange des choses, telles que la zone de texte texte ne sera pas le montrer, JPasswordfield a tout simplement disparu, Java AWT ROBOT meurt trop... la liste est longue, j'ai d'abord pensé qu'il doit être mon Linux JRE est pas à jour, mais j'ai installé la dernière JRE puis le JDK avec aucune amélioration à tous. J'ai le sentiment que je m'ennuie compris la Java de la croix-plat capacité. J'ai aussi essayé de supprimer tous mes fonctions et les tripes de voir ce qui est cassé mais il me semble qu'à chaque seconde, c'est la rupture, autres que les quelques-uns des principaux composants GUI et la plupart de la fin des choses. fondamentalement, quelque chose qui utilise quelque chose de fantaisie sera blowup dans mon visage, tels que la création d'un champ de texte dans un champ de mot de passe...
C'est mon premier temps à poster 😉 merci d'être agréable pour les débutants!
Merci!!!
RÉSOLU!!!
Yay. Problème résolu!!! C'était parce que mon Java chemin n'est pas défini, donc mon GCC/GCJ sauté à la place de mon oracle java, même quand j'ai utilisé java-jar xxx.jar. donc je l'ai mis dans le répertoire java chemin d'accès à partir de mon java-jar xxx.jar et a travaillé comme un charme. sauf si vous définissez le chemin d'accès, vous devez avoir à le faire manuellement
/usr/java/jdk1.6.0_21/jre/bin/java-jar xxxxx.jar
java -version pour vérifier si votre java est en cours d'exécution ou si il est encore GCJ
Mon expérience en 1.4 a été que SWING était pas réellement portable, mais je ne peux pas parler pour les versions depuis. AWT a été légèrement plus sûr...
Swing est très portable. Les personnes ont des problèmes (comme dans les contrôles de ne pas l'aligner correctement) a plus à voir avec les programmeurs de ne pas utiliser les mises en page propertly.
Qui JRE êtes-vous d'utiliser sous Linux? Si vous avez installé Oracle JRE, vous êtes aussi sûr que vous êtes en train d'utiliser, et pas d'autres JRE, qui était fourni avec votre distribution Linux, par accident, se trouve d'abord dans le chemin d'accès ("java -version" pour vérifier)?
comment l'awt robot mourir? La javadoc indique que vous pouvez avoir besoin de privilèges spéciaux pour l'exécuter et de permettre une extension du système xwindow. Ce n'est pas une erreur avec java, mais un linux mesure de sécurité.
OriginalL'auteur JavaLu | 2010-10-08
Vous devez vous connecter pour publier un commentaire.
Les utilisateurs de Linux souvent exécuter des programmes java avec gcj au lieu de java. Vérifiez que vous utilisez un bon exécutable.
Je pense que c'est votre problème. Sur Linux, vous devez utiliser OpenJDK, ou Java de Sun.
Yep, c'est la réponse va bien. Merci les gars!!!!
OriginalL'auteur Ha.
Vérifiez que vous utilisez du Soleil (Oracle) JRE sur votre machine Linux et pas une 3ème partie Java de mise en œuvre tels que gcj ou les goûts.
Dans mon expérience, les applications Java sont tout à fait portable aussi longtemps que vous vous en tenez à la même JVM/runtime vendeur sur chaque cible, mais implémentations Java à partir de différents fournisseurs peuvent se comporter différents les uns des autres.
java -jar JarName
🙂BTW, vous pouvez utiliser
which java
pour savoir qui commande java est en fait appelée.OriginalL'auteur Grodriguez
Oui. La classe et un pot de formats sont intentionnellement multi plates-formes.
Êtes-vous absolument certain que votre fichier jar a été copié correctement sur votre machine Linux? Si vous avez utilisé le ftp, il est crucial d'utiliser les binaires au lieu de transfert en mode ascii.
j'ai utilisé total commander pour le FTP, je ne peux pas tester maintenant que je suis Loin de ma boîte. ne sais pas si c'était ftp ou ascii, mais je vais essayer d'utiliser mon Mem bâton.
Cela dépend des modèles de bits présents dans le fichier transféré.
vous pouvez également transférer le source fichiers et de les compiler sur votre machine Linux. Vous aurez besoin du JDK installé.
mm kk. va le faire
OriginalL'auteur Thorbjørn Ravn Andersen
Est votre application dépend d'aucune des bibliothèques externes que vous devez également disponible sur votre machine Linux?
Vrai, mais nous n'avons pas beaucoup à aller sur d'autre qu'un vague "c'est cassé."
re, je suis loin de ma box donc je ne me souviens pas de toutes les erreurs. je me souviens de l'un d'eux tho: java.lang.erreur: pas de mise en œuvre. désolé de ne pas être préparé, je m'attendais à 5 heures avant la première réponse, et moins intense.
OriginalL'auteur Dave
Java dit: "Écrire une fois, exécuter partout".
Écrire une fois, exécuter partout est en fait plus vrai pour C que pour Java. Java est censé être compiler une fois, exécuter partout qui a une JVM.
notez que WORA ne s'applique pas à des méthodes indigènes/libs
Si vous ne savez pas comment utiliser les mises en page bien et ne sont pas conscients de la croix-plate-forme de ramifications, vous devriez probablement de test sous un tas de résolutions & tailles de police. Vous ne devez autoriser pour les polices de caractères n'existant pas sur les différentes plates-formes et de test, mais c'est toujours mieux que toute autre langue, à cet égard, au moins Java A la disposition des gestionnaires qui peuvent gérer l'évolution des conditions parce qu'ils savaient permettant la réutilisation de code d'apporter de nouveaux problèmes....
OriginalL'auteur 卢声远 Shengyuan Lu
Êtes-vous à l'aide de KDE? Quel thème? J'ai eu un problème hier que le thème "Cleanlooks" a beaucoup de bugs de rendu des widgets. Essayez De "L'Oxygène".
Si vous le pouvez, essayez le code sur une autre machine sous Linux (peut-être qu'il a un défaut matériel). Exécuter "memtest" (ce qui devrait être une option dans le chargeur de démarrage ou sur votre CD de secours).
OriginalL'auteur Aaron Digulla
Swing doit être entièrement portable. Essayez d'utiliser le look métal et de sentir, qui est largement soutenu. J'ai des doutes sur
java.awt.Robot
bien et ne serais pas surpris si c'était la source de vos problèmes.OriginalL'auteur Qwerky
J'ai un Swing application qui j'ai distribué via Java Web Start que je n'ai pas mis à jour depuis 2004, dont je sais qu'il fonctionne toujours très bien sur Mac OS X, Windows, et Linux. J'ai couru l'autre jour, parce que quelqu'un m'a envoyé une question à ce sujet. Il a été écrit à l'origine sur Windows, mais n'a jamais montré aucun problème sur d'autres systèmes d'exploitation ou même en beaucoup, beaucoup plus tard les versions de Java.
La JVM présente un terrain de jeu à travers une grande variété de plates-formes et de l'API Java est bien mis en place pour travailler le même et offre la même fonctionnalité. Mon pari est que vous trouverez ce problème est quelque chose de totalement sans rapport avec votre code Java. En plus de la suggestion pour essayer votre application sur un autre ordinateur exécutant le même système d'exploitation, assurez-vous d'essayer d'autres personnes Java applications en cours d'exécution sur celui qui donne à ces problèmes. Ma propre HotSheet: http://www.johnmunsch.com/projects/HotSheet/ ou d'un jeu comme tour de passe-passe: http://roguelikefiction.com/?page_id=6 pour voir si ceux-ci vont travailler.
OriginalL'auteur John Munsch
Sur linux, il pourrait être crucial pour l'utilisation de la Sun JDK/JRE et pas l'openjdk, qui est un mise en œuvre de l'officiel de sun java jdk. Il se pourrait donc que, bien que pas sûr du tout.
OriginalL'auteur toomuchcs
Java est très transportable. Les Chances sont de votre VM est différent. Bien que l'Open Source VMs sont de très bonne qualité, je vous recommande d'essayer avec du Soleil VM--je n'ai jamais eu un problème avec l'exécution du code.
Aussi, si vous utilisez des bibliothèques avec le langage machine de composants, ceux-ci devront être différents (j'ai remarqué cela avec certaines bibliothèques graphiques que l'appel par l'intermédiaire de la plate-forme 3d du sous-système)
Mais Java lui-même SERA port facilement à tout système qui a la même bibliothèque, et une bonne VM Très Bien, je le fais tout le temps et ce, pendant dix ans, et, littéralement, n'ont jamais eu un problème. C'est l'exécution de systèmes client/serveur où les clients et le serveur ont été sur différentes plateformes, PC/Mac & Unix et même des systèmes embarqués--des trucs juste ports.
Maintenant, des applets cours d'exécution dans les différents navigateurs, ou visuellement essayer de faire correspondre les polices sur des machines qui ne contiennent pas la même police--Rien ne vous y aider.
OriginalL'auteur Bill K