Java aplication compilado em windows tem que alterar alguma coisa pra que funcione no linux?

7 respostas
L

Olá pessoal, tenho um Java Application aqui compilada no NetBeans 6.0 no windows, se eu pegar a pasta do projeto e colocar numa máquina em linux ele vai rodar normal ou eu tenho que alterar em algum arquivo do projeto pra que funcione? []'s a todos.

7 Respostas

qmx

Primeiro, edita esse título em caixas altas, é contra a “nettiqueta”

quanto à sua pergunta, teoricamente é pra funcionar. Só toma cuidado com encoding, algumas versões do netbeans fazem tudo em windows-1252 enquanto o padrão em 90% das distribuições linux modernas é utf-8.

ramilani12

Não necessariamente , caso vc utilize algo especifico do Windows, vc passara por problemas no Linux
Exemplo DLL especifica do Windows.

qmx

se o cara tá usando jni ele deve saber disso… :mrgreen:

T

Java é WOTA - Write Once, Test Anywhere.
É bom testar sua aplicação - coisas que podem dar problemas:

  • Em aplicações gráficas, usar uma fonte que está disponível no Windows mas não no Linux (como a clássica fonte “Verdana” ou “Tahoma”);
  • O encoding (Windows-1252 no Windows, UTF-8 em muitas distribuições Linux);
  • Nomes de arquivos e diretórios (“c:\windows” X “/usr/bin”) ;
  • ODBC para acessar bancos de dados (MS Access não é banco de dados, quanto mais no Linux :stuck_out_tongue: )
  • Permissões de arquivos e diretórios. No Windows você normalmente tem permissão demais, o que não ocorre no Linux.
  • Nomes de arquivos respeitam a diferença entre minúsculas e maiúsculas no Linux. Por exemplo, se você tenta carregar a imagem “teste.png” no seu programa mas no disco o nome é “TESTE.PNG” ela carrega direitinho no Windows mas não carrega no Linux.
L

O ou, acabei de descobrir um problema aqui na minha aplicação, quando eu fecho a janela do shell a minha aplicação para de rodar também, por que será que isso acontece? []'s.

T

Isso é esperado no Unix / Linux - se você fechar o shell, todos os processos iniciados pelo shell que não foram postos em background (isto é, com “&”) serão encerrados.

Isto é encerrado quando você fechar o shell:
java -jar seu.jar

Isto não é encerrado quando você fechar o shell:
java -jar seu.jar &

L

Valeu thingol, caiu do céu esse “&” hehe, abraços pra você e todos aí que esclareceram algumas das minhas dúvidas e iluminaram alguns metros a minha frente…

Criado 22 de janeiro de 2008
Ultima resposta 22 de jan. de 2008
Respostas 7
Participantes 4