O Java compilado no windows funciona no Linux?

Meu programa Java está em funcionamento quando eu usá-lo no Windows (Eclipse e Bluej). Eu comprimo-lo para um flask e enviá-lo para o meu chapéu vermelho e bang. nada funciona. Isso quebra as coisas mais estranhas, como o texto do conjunto de campo de texto não irá aparecer, o JPasswordfield acabou de desaparecer, o Java AWT ROBOT também morre … a lista continua, primeiro eu pensei que deveria ser meu Linux JRE desatualizado, mas eu instalou o JRE mais recente que o JDK sem nenhuma melhoria. Eu tenho a sensação de que eu sinto falta de entender a capacidade do Java Plat Plat. Eu também tentei remover todas as minhas funções e coragem para ver o que está quebrando, mas parece que cada segunda coisa está quebrando, além de alguns dos principais componentes da GUI e a maioria das coisas de back-end. basicamente qualquer coisa que usa alguma coisa fantasia vai explodir na minha cara, como fazer um campo de texto em um campo de senha …

Esta é a minha primeira vez postando;) por favor, seja gentil com o novato!

Obrigado!!!

RESOLVIDO !!! Yay. Problema resolvido!!! Foi porque o meu caminho Java não está definido, então meu GCC / GCJ pulou em vez do meu oracle java, mesmo que eu usei java -jar xxx.jar. então eu coloquei no caminho do diretório java do meu java -jar xxx.jar e trabalhei como um encanto. a menos que você defina o caminho, você tem que fazer isso manualmente

/usr/java/jdk1.6.0_21/jre/bin/java -jar xxxxx.jar

java -version para verificar se o seu java real está em execução ou se ainda é o GCJ

Usuários de Linux geralmente executam programas java com gcj ao invés de java. Verifique se você usa um executável correto.

Verifique se você está usando o JRE da Sun (Oracle) em sua máquina Linux e não alguma implementação Java de terceiros, como gcj ou semelhantes.

Na minha experiência, os aplicativos Java são bastante portáveis, desde que você se atenha ao mesmo fornecedor de JVM / tempo de execução em cada destino SO, mas as implementações de Java de diferentes fornecedores podem se comportar de forma diferente umas das outras.

Sim. Os formatos de class e jar são intencionalmente crossplatform.

Você tem certeza absoluta de que seu arquivo jar foi copiado corretamente para sua máquina Linux? Se você usou ftp, é crucial usar a transferência binária em vez de ascii.

Seu aplicativo é dependente de qualquer biblioteca externa que você também precise ter disponível em sua máquina Linux?

Java diz: ” Escreva uma vez, execute em qualquer lugar “.

Você está usando o KDE? Qual tema? Eu tive um problema ontem que o tema “Cleanlooks” tem um monte de bugs de renderização de widgets. Experimente “Oxigênio”.

Se você puder, tente o código em uma checkbox Linux diferente (talvez tenha um defeito de hardware). Execute “memtest” (deve ser uma opção no gerenciador de boot ou no seu CD de recuperação).

Swing deve ser totalmente portátil. Tente usar a aparência de metal, que é amplamente suportada. Eu tenho minhas dúvidas sobre java.awt.Robot e não ficaria surpreso se esta fosse a fonte de seus problemas.

Eu tenho um aplicativo Swing que eu distribuí via Java Web Start que não tenho atualizado desde 2004, que eu sei ainda funciona bem no Mac OS X, Windows e Linux. Eu corri no outro dia porque alguém me enviou uma pergunta sobre isso. Ele foi originalmente escrito no Windows, mas nunca mostrou problemas em outros sistemas operacionais ou mesmo em versões muito posteriores do Java.

A JVM apresenta um campo de atuação muito nivelado em uma ampla variedade de plataformas, e a API Java é bem implementada para funcionar da mesma forma e oferecer a mesma funcionalidade. Minha aposta é que você encontrará este problema é algo totalmente não relacionado ao seu código Java. Além da sugestão de testar seu aplicativo em outra máquina executando o mesmo sistema operacional, lembre-se de experimentar os aplicativos Java de outras pessoas que executam o aplicativo que está causando problemas. Tente minha própria HotSheet: http://www.johnmunsch.com/projects/HotSheet/ ou um jogo como Legerdemain: http://roguelikefiction.com/?page_id=6 para ver se eles funcionam.

No linux, pode ser crucial usar o Sun JDK / JRE e não o openjdk, que é uma implementação do jdk oficial do sun java. Então pode ser que, embora não tenha certeza.

Java é muito transportável. As chances são de que sua VM seja diferente. Embora as VMs de código aberto estejam ficando muito boas, recomendo tentar usar a VM da Sun – nunca tive problemas com a execução de códigos.

Além disso, se você estiver usando bibliotecas com componentes de linguagem de máquina, elas terão que ser diferentes (notei isso com algumas bibliotecas gráficas que chamam o subsistema 3d da plataforma)

Mas o próprio Java VAI portar facilmente para qualquer sistema que tenha as mesmas bibliotecas e uma boa VM Muito Bem – eu faço isso o tempo todo e tenho feito isso por dez anos e, literalmente, nunca tive um problema. Isso está executando sistemas cliente / servidor onde os clientes e o servidor estavam em plataformas diferentes, PC / Mac e Unix e até mesmo sistemas embarcados – apenas portas.

Agora, os applets estão sendo executados em diferentes navegadores ou visualmente tentando corresponder fonts em máquinas que não contêm a mesma fonte – Nothing irá ajudá-lo.