diferenças entre plataformas windowsXLinux

15 respostas
A

Existem diferenças de comandos Java, entre Linux e Windows?
pois estou com problemas de codigos em alguns componentes…

ex:

O windows estava rodando

if (!TxtPesquisa.getText().isEmpty()){

}

No Linux a linha de comando nâo é aceita, diz que não existe o método na classe java.lang.string

estou precisando dessa ajuda…muito obrigado

15 Respostas

thiagosil

pode ser que a versão do java seja diferente e por isso no linux não
ta aceitando

Luiz_Aguiar

digita no linux e no win: java -version
vc vai matar o “problema”, verifique tbm o projeto, as dependecias, pra ver se esta tudo igual nos dois ambientes.

sudeval

Cara, a sintaxe do java vai ser a mesma independente da plataforma.

Esse TxtPesquisa é um JTextField ?
O que você pode fazer e checar junto a api se a mesma disponibiliza tal metodo usado por você. Por Exemplo, ao procurar na API do Java 5 aqui, o teu getText() vai me retornar uma String, e String não tem o metodo isEmpty(), isso iria ocorrer um erro caso estivesse com o java 5 instalado.

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

Já se você tem instalado o Java 6, o mesmo tem o metodo isEmpty na Classe String que checa se o tamanho da String é igual a 0 e retorna um boolean.
http://java.sun.com/javase/6/docs/api/java/lang/String.html

Ou seja, o que está acontecendo é que você usa o JAVA 6 no seu Windows, e utiliza uma versão inferior a 6 no seu Linux.

espero ter ajudado!!!

ramilani12

Vc pode resolver esse problema da seguinte maneira:

if (jtextField.length() &lt 0)
{

}

Isso é semelhante ao metodo isEmpty() com isso mantem a mesma compatibilidade entre as JVM´s

RenataFA

Não faça isso!

Esse comando DEVE ser aceito em qq plataforma e ficar tentando driblar a situação mudando todo seu código fonte pra outros comandos não vai resolver em nada! Vai resolver esse e aparecer outro caso igual.

Aqui desenvolvemos em Java (swing) e rodamos em linux e win. Alias, desenvolvemos em qq uma das plataformas e rodamos em qq uma delas.

Com certeza o problema não é o comando. Tente ver a versão do java como os amigos ensinaram, tente ver se não está faltando nenhum .jar no seu java do linux, alguma coisa está errada na instalação e não no seu fonte.

Boa sorte! :wink:

nadilsons

RenataFA:
Não faça isso!

Esse comando DEVE ser aceito em qq plataforma e ficar tentando driblar a situação mudando todo seu código fonte pra outros comandos não vai resolver em nada! Vai resolver esse e aparecer outro caso igual.

Por que não?
O problema é inerente a versão do java. No windows ele tem a versão 6 e no linux a versão 5. E como é de se esperar, a cada nova versão surgem novos métodos para nos auxiliar… mas francamente, este metodo em questão nem é tão útil assim…

Então acho a solução indicada pelo nosso amigo ramilani12 muito interessante, principalmente por manter a compatibilidade entre as duas VMs…

Veja só a descricao do metodo isEmpty na documentacao, fazer o q ramilani12 disse é trocar 6 por meia dúzia

Obrigado

Mantu

ramilani12:
Vc pode resolver esse problema da seguinte maneira:

if (jtextField.length() &lt 0)
{

}


Isso não seria equivalente a…

if(false){
...
}

:?: :?: :?: :?:
:shock: :shock: :shock: :shock: :shock:

Eduardo_Bregaida

RenataFA:
Não faça isso!

Esse comando DEVE ser aceito em qq plataforma e ficar tentando driblar a situação mudando todo seu código fonte pra outros comandos não vai resolver em nada! Vai resolver esse e aparecer outro caso igual.

Aqui desenvolvemos em Java (swing) e rodamos em linux e win. Alias, desenvolvemos em qq uma das plataformas e rodamos em qq uma delas.

Com certeza o problema não é o comando. Tente ver a versão do java como os amigos ensinaram, tente ver se não está faltando nenhum .jar no seu java do linux, alguma coisa está errada na instalação e não no seu fonte.

Boa sorte! :wink:

Pq nao faça isso??? hahahha se vai resolver o problema dele de forma pratica e objetiva ele TEM q fazer isso…
Todos sabemos q Java roda em Linux, Win, Mac e etc, porém talvez ele possa estar usando uma versão mais antiga, assim sendo ou ele padroniza a versão nos 2 ou ele adapta o código. Agora dizer p/ ele n fazer e se matar pra ver as N coisas q podem estar acontecendo, perdendo tempo de projeto eu n concordo… :smiley:

Akamaru Quais as versões que estão instaladas no Win e no Linux da JVM??? :smiley:

RenataFA

Então nadilsons, eu concordo com o que vc falou sobre o método isEmpty(), alias, nunca usei ele,,, mas o que queria dizer é que não acho que resolva ficar trocando a forma de fazer as coisas pra rodar em diferentes JVM, independente de que método estejamos falando. Sei lá, mas na minha opinião, pelo menos qual JVM vc vai usar tem que ser algo padronizado dentro da empresa...

Mas enfim, vai de cada um, eu por ex costumo usar:

varString.equals("")

Como eu disse,,, eu não faria isso.

E qto a dúvida do Mantu:

Sim Mantu, vc tem razão, nada pode ter tamanho negativo! hahaha... é que o povo viajou e disseram:

jtextField.length() &lt 0

Qdo na verdade queriam dizer:

jtextField.length() &lt= 0
ou
jtextField.length() = 0

T+

RenataFA

Exato! Sou a favor de que ele padronize a versão nos 2, apenas isso.

Vamos pensar, se sempre tivermos que mexer no código para que fique compatível com uma versão antiga de JVM, então pra que programamos com a versão atual da JVM?! Pra que ter ela e usar as facilidades da mesma? Não serviria pra nada entende? Seria como sempre programarmos com comandos da JVM 1 (se é que existiu, gente, nem sei, tô usando de exemplo) para que sempre fosse compatível com qq. JVM que tivesse instalada na máquina que o sistema for rodar… :wink:

É claro que não ficamos correndo atrás de cada JVM nova que é lançada, mas uma padronização com respeito a qual JVM será usada eu acho algo necessário. :smiley:

Enfim, boa sorte ai pra vcs…

T+

Mantu

Na verdade não era uma dúvida, apenas uma pergunta retórica… :lol:

Esse é o tipo código de programador pessimista e/ou neurótico que quer se precaver caso apareça um String com -34 caracteres, por exemplo…
A propósito, eu sempre programo assim… Sabe Deus, né? :twisted: :lol:

peerless

O que a guria escreveu, relativamente faz sentido; Eu penso assim também. Afinal, o cara vai ficar sempre se livrando de métodos incompatíveis entre as JVM’s, através de codigos diferentes.
seria preguiça de atualizar a JVM ?

Mantu

peerless:
O que a guria escreveu, relativamente faz sentido; Eu penso assim também. Afinal, o cara vai ficar sempre se livrando de métodos incompatíveis entre as JVM’s, através de codigos diferentes.
seria preguiça de atualizar a JVM ?

Não sei… Eu também pensava assim… Mas eu vejo que há casos e casos… Aqui no trampo, por exemplo, temos clientes que rodam sistemas de grande porte baseados em java 1.4 (alguns até em 1.3 :shock: ), e nossos clientes são majoritariamente instituições financeiras, que não podem(tão pouco querem) parar tudo pra trocar todo o sistema. Uma atualização nesse caso se torna inviável, pelo menos por enquanto, e também enquanto o uso de java 1.4 não ser, ele próprio, inviável. Porém, algumas coisas novas que estamos criando, já estão vindo em Java 5… Acho que não dá pra tratarmos de forma tão maniqueísta esta questão: 1.4 pra baixo é ruim, 1.5 é bom. Acho que não é por aí…

nadilsons

É seria tão bom se as coisas fossem do jeito certo… mas entao… saindo da matrix e vindo para o mundo real, nós percebemos que nem tudo é como deveria ser…

Existem milhares de razões e/ou desculpas descabidas (como o Mantu muito bem elucidou) para as coisas nao serem melhor jeito para o desenvolvedor… principalmente qdo vc trabalha em uma softhouse… e nao tem nenhum acesso ao ambiente do cliente (e nem deve ter mesmo… rs)

É isso aí…

Obrigado

A

muito obrigado a todos, eu ja sei o que fazer…imagino que os outros problemas como janela nao iniciar maximizada ou nao ficar em modo modal seja por causa disto também

Criado 4 de abril de 2007
Ultima resposta 4 de abr. de 2007
Respostas 15
Participantes 10