Eu estou utilizando o Kate, Editor de Textos Simples, para fazer uns testes e para executar no terminal eu uso: “javac nome.java”, aí cria um “nome.class”, e como eu faço para executar a telinha???
Alguém pode me passar o comando?
Vlw…
Eu estou utilizando o Kate, Editor de Textos Simples, para fazer uns testes e para executar no terminal eu uso: “javac nome.java”, aí cria um “nome.class”, e como eu faço para executar a telinha???
Alguém pode me passar o comando?
Vlw…
executar a telinha ?
pra rodar o programa usa o comando “java”
“java nome.class”
executar a telinha ?pra rodar o programa usa o comando “java”
“java nome.class”
Errado. NÃO COLOQUE O .CLASS NO FINAL!
Se a classe compilada é “Minhaclasse.class” use : “java Minhaclasse”. Só.
Eu tentei mas aparece isso:
(…$ java sinaleira.class)=>Minha execução
Exception in thread “main” java.lang.NoClassDefFoundError: sinaleira.class
at gnu.java.lang.MainThread.run(libgcj.so.7)
Caused by: java.lang.ClassNotFoundException: sinaleira.class not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.Class.forName(libgcj.so.7)
at gnu.java.lang.MainThread.run(libgcj.so.7)
Sergio Figueras, quando eu faço isso aparece:
(…$ java sinaleira)=> Minha execução
Exception in thread “main” java.lang.ClassFormatError: sinaleira (unrecognized class file version)
at java.lang.VMClassLoader.defineClass(libgcj.so.7)
at java.lang.ClassLoader.defineClass(libgcj.so.7)
at java.security.SecureClassLoader.defineClass(libgcj.so.7)
at java.net.URLClassLoader.findClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.Class.forName(libgcj.so.7)
at gnu.java.lang.MainThread.run(libgcj.so.7)
executar a telinha ?pra rodar o programa usa o comando “java”
“java nome.class”
Errado. NÃO COLOQUE O .CLASS NO FINAL!
Se a classe compilada é “Minhaclasse.class” use : “java Minhaclasse”. Só.
opa… desatenção minha =)
Leia o que o Sergio escreveu.
ahahahhah… esses posts simultâneos.
O java também faz distinção entre letras maiúsculas e minúsculas.
É diferente digitar java sinaleira e java Sinaleira.
Use o que estiver na sua classe.
Este é o nome sinaleira.java, depois de executar o “javac sinaleira.java” ele criou o sinaleira.class, aí eu fiz como vocês falaram: “java sinaleira” e deu aqueles erros.
Está tudo em minúsculo, como eu sempre faço para não me perder.
O que eu faço???
Será que é erro em alguma linha???
Vlw…
vc definiu algum package? se sim tenta:
java nomeDoPackage.NomeDaClasse
Na verdade eu não fiz nada de mais, só usei alguns if e else e estrutura de repetição while, nada mais, acho que não tem nada de package…
Obs.: O que é package???
Vlw!
package vc define na primeira linha do fonte:
package seunome.seupackage;
public class SuaClasse {
...
}
pra rodar essa classe ai, vc precisa digitar:
java seunome.seupackage.SuaClasse
Então não tem nenhum package, porque começa assim:
import javax.swing.JOption Pane;
class sinaleira {
public static void main(String args[]) {
vc esta usando o comando java no diretorio corrente ?
o comando javac procura arquivos .java no diretorio corrente por padrao
mas o comando java nao faz isso . vc pode indicar isso a ele usando a seguinte sinatxe
java -cp . nome
obs note o ponto apos o cp , é ele quem indica ao java usar o diretório corrente
cetifique-se de estar no mesmo diretorio onde esta seu arquivo nome.class
Esse é o código e o erro que dá é referente ao “main” da linha 3… Não sei o que é. E mesmo com o java - cp . adivinhar não deu certo. E agora?
import javax.swing.JOptionPane;
class sinaleira {
public static void main(String args[]) {
String sinal;
int cont;
cont=1;
while (cont<=4) {
sinal = JOptionPane.showInputDialog(null,"Digite o Sinal","Sinaleira",JOptionPane.ERROR_MESSAGE);
if (sinal.equalsIgnoreCase("verde")) {
JOptionPane.showMessageDialog(null,"Siga!");
}else if (sinal.equalsIgnoreCase("amarelo")) {
JOptionPane.showMessageDialog(null,"Atenção!");
}else if (sinal.equalsIgnoreCase("vermelho")) {
JOptionPane.showMessageDialog(null,"Pare!");
}else {
JOptionPane.showMessageDialog(null,"Você é daltônico por acaso!?!");
}
cont++;
}
}
}
O que é esse “String args[]”?
E pra que serve esse “[]”?
Vlw…
Cara, eu achei esse seu código muito confuso. Mas ai coloquei auqi no eclipse e rodou. È algum problema de configuração mesmo. Você tá usando algum pacote? Usando eclipse, netbeans, ou o q?
[]'s!
Esse parametro do método main, String [] args, significa que é uma lista de argumentos que o metodo pode receber. Mas uma coisa, voce mesmo que fez esse codigo fonte?
[]'s
Não to usando nem netbeans, nem eclipse, só um editor de textos simples (Kate) e executando em um termina.
Era um exercício do meu curso e eu achei assim o modo mais fácil, primeiro a gente faz no “braço” e depois no netbeans.
Acho o problema???
Vlw…
O problema é alguma configuração sua. Aqui rodou tranquilo.
Faz assim…
Cria um arquivo vazio com o nome de sinaleiro.java , cola essa CF ai dentro, e digita javac sinaleiro.java, depois só digitar java sinaleiro
Mas vou voltar a pagina anterior e ver o teu stacktrace, perai…
Ó cara tenho que ir, amanhã eu continuo
Vlw pela ajuda…
Exception in thread "main" java.lang.ClassFormatError: sinaleira (unrecognized class file version)
Este erro diz respeito a ter compilado o código com uma versão de Java e rodar o código em uma versão de JVM inferior.
Exception in thread "main" java.lang.ClassFormatError: sinaleira (unrecognized class file version)
at java.lang.VMClassLoader.defineClass(libgcj.so.7)
at java.lang.ClassLoader.defineClass(libgcj.so.7)
at java.security.SecureClassLoader.defineClass(libgcj.so.7)
at java.net.URLClassLoader.findClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.Class.forName(libgcj.so.7)
at gnu.java.lang.MainThread.run(libgcj.so.7)
Olhando o stacktrace deu para notar que você está usando GNU JVM que vem como default na instalação do Linux. Provavelmente é problema do seu PATH. Configure corretamente o PATH com o diretório que está instalado a sua JDK para rodar o código.
Oyama você estava certo…
Agora rodo tranqüilo…
Vlw
FIM DO PRIMEIRO PROBLEMA
Início do segundo:
Eu estava testando um exemplo sobre switch e case, esse era o exemplo:
class switch {
public static void main (String args []) {
if (args.length == 1) {
int x;
x = Integer.parseInt (args [0]);
switch (x) {
case 0:
System.out.printIn("ZERO"); break;
case 1:
System.out.printIn("UM"); break;
case 2:
System.out.printIn("DOIS"); break;
case 3:
System.out.printIn("TRÊS"); break;
case 4:
System.out.printIn("QUATRO"); break;
case 5:
System.out.printIn("CINCO"); break;
case 6:
System.out.printIn("SEIS"); break;
case 7:
System.out.printIn("SETE"); break;
case 8:
System.out.printIn("OITO"); break;
case 9:
System.out.printIn("NOVE"); break;
default:
System.out.printIn("NÚMERO DESCONHECIDO");
}
}else {
System.out.printIn("NÚMERO DE ARGUMENTOS INVÁLIDOS");
}
}
}
Aí surgiu os seguintes erros, tavez será que o exemplo não está completo ou o que???
switch.java:1: expected
class switch {
^
switch.java:34: reached end of file while parsing
}▒
^
creio q vc nao pode criar uma classe com o nome “switch”
jah q eh uma palavra reservada do Java…
mude o nome para “Switch” ou outra coisa… q deve funcionar
Era isso mesmo, mas agora deu erro em todas as frases:
symbol : method printIn(java.lang.String)
location: class java.io.PrintStream
System.out.printIn("…");
no seu codigo System.out.printIn(…)
esta printIn ?
deveria ser ln (LN) e não (IN)…
System.out.println
Vlw cara eu nem tinha percebido e nem ia perceber.
Agora foi, mas deu a mensagem do else do CF: NÚMERO DE ARGUMENTOS INVÁLIDOS…
Foi mas como eu faço ele funcionar certinho os case
bom… de acordo com o programa…
ele soh vai rodar se vc enviar exatamente 1 parametro
entao execute
java Switch 1
ou
java Switch 5
ou
java Switch 9
e ele deve executar corretamente…
Você testo isso que você acabo de falar???
Porque pra mim não dá certo:
Exception in thread “main” java.lang.NoClassDefFoundError: Switch
Esse é o erro, porque o nome da classe é casos e não Switch
Vlw…
ueh… falei Switch pq eh o nome q eu colocaria aqui =)
se a sua eh “casos” ponha “casos” oras…
java casos 1
java casos 5
java casos 9
sim jah testei, e funciona perfeitamente
pode ser que não esteja encontrando o diretorio onde estao as suas classes do JSE e ocorre este erro
tente fazer o seguinte
$JAVA_HOME=<caminho até a o / de jsdk>
$PATH=$PATH:$JAVA_HOME/bin
java - cp. : $JAVA_HOME \lib\tools.jar
ainda contem o ponto mas agora adicionamos : $JAVA_HOME \lib\tools.jar
verifique esta questao de classpath e variaveis de ambiente
neste link http://www.guj.com.br/java.tutorial.artigo.163.1.guj tem um pdf explicando a instalação do java mas fala sobre variaveis de
ambiente
Acho que isso pode te ajudar
Vlw Thiago veiga, mas funcionou do jeito do alucardeck: java casos 1…
Ô alucardeck eu falei na boa, nada mais…
Já falei sou iniciante, não tava tentando sabe mais.
Você tava certo funcionou perfeitamente…
Obrigado, vlw…
FIM DO SEGUNDO PROBLEMA
Início do terceiro:
Não sei se exite uma forma de pegar os números que são digitados para somar, mas se tem me digam, já agradeço:
import javax.swing.JOptionPane;
class laço {
public static void main(String args[]) {
String sinal;
int cont;
cont=1;
while (cont<=4) {
sinal = JOptionPane.showInputDialog(null, "Digite um número:" , "Somando" , JOptionPane.PLAIN_MESSAGE);
cont++;
}
}
}
Scanner input = new Scanner (System.in );
int numero = input.nextInt();
Ó Thiago eu fiz umas coisas aqui nada a ver e não consegui, você pode me ajudar???
import javax.swing.JOptionPane;
class laço {
public static void main(String args[]) {
Scanner input = new Scanner (Systen.in );
String sinal;
String result;
int cont;
int pega = input.nextInt();
cont=1;
pega=1;
while (cont<=4) {
sinal = JOptionPane.showInputDialog(null, "Digite um número:" , "Somando" , JOptionPane.PLAIN_MESSAGE);
cont++;
}
while (pega<=4) {
pega++;
}
result = JOptionPane.showMessageDialog(null, pega, "Números")
}
}
a variavel pega ta recebendo o valor que o usuario digita mas depois vc atrui o valor 1 para ela
e perde o valor que o usuario digitou
a String sinal tambem vai ficar com o ultimo valor digitado
E como eu faço para pegar os quatro valores que a pessoa digita e depois jogar esses valores em variáveis para fazer um cálculo???
Vlw
depende de como vc quer fazer o calculo
se for algo simples... pode fazer na propria variavel..
//exemplo SOMA..
int digitado=0;
cont=1;
soma=0;
while (cont<=4) {
digitado = input.nextInt();
soma+=digitado;
cont++;
}
System.out.println ( soma ) ;
//exemplo Multiplicacao entre os 4 numeros..
int digitado=0;
cont=1;
produto=0;
while (cont<=4) {
digitado = input.nextInt();
produto*=digitado;
cont++;
}
System.out.println ( produto) ;
Scanner input = new Scanner (System.in);
int resultado = 0;
int i = 0;
while (i < 4){
System.out.println("digite o num " + i);
resultado += input.nextInt();
i++
}
System.out.println(resultado);
Ainda não consegui mas deixa pra lá, vou estudar mais um pouco e depois retomar com os teste…
Mas vlw pela força.
Eu tava aqui estudando um pouco aqui e vi escrito aqui na apostila algumas coisas.
E daí eu queria saber qual é a diferença de J2SE, J2ME E J2EE de uma forma simples…
Vlw…
JSE Java Standart Edition - é o mais comum este q vc instalou na sua maquina
JME Java Micro Edition - para dispositivos moveis como celulares
JEE - Java Enterprise Edition - para desenvolvimento Web
Seguinte eu tambpém entrei no fórum e descobri que preciso aprender mais por isso corri atrás de apostilas e de uma forma simples posso dizer o seguinte:
Todos esses J2 são ferramentas de Desenvolvimento.
J2SE: - É o ambiente de desenvolvimento mais utilizado. Isso porque seu uso é voltado a PcS e servidores, onde há bem mais necessidade de aplicações.
J2ME: é o ambiente de desenvolvimento para dispositivos móvei ou portáteis, como telefones celulares, palmtops, relógios e até mesmo cartões de crédito. Há basicamente 2 tipos de aplicativos em linguagem J2Me:
Aplicativos locais: diretamente de um aparelho
Aplicativos em rede: interagem com rede de dados:
J2EE: é a plataforma java voltada para redes, internets, intranets e afins.
espero ter ajudado vlw
Era isso mesmo que eu queria saber, agora vô voltar a fazer mais uns testes pra tirar mais algumas dúvidas…
Vlw pros 2, t+
Pessoal aproveitando o embalo estou trabalhando com a função throw e fiz um exemplo simples que está longe de parecer com uma aplicação real; ele funciona e está fazendo a exceção!!!E quando que não faz???
se alguém puder me ajudar.!!!
class excecao{
public static void main (String args[]) {
try{
System.out.print ("Como aprender");
throw new Exception ("MinhaExcecao");
} catch (Exception MinhaExcecao){
System.out.println(" a linguagem Java?");
}
}
}
Eu estava testando o try e o catch com esse exemplo:
class estrutura {
public static void main (String args []) {
try {
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
System.out.println("Soma = " + (num1 + num2));
System.out.println("Subtração = " + (num1 - num2));
System.out.println("Multiplicação = "+ (num1 * num2));
System.out.println("Divisão = " + (num1 / num2));
}catch (ArithmeticException e) {
System.out.println("Erro de divisão por zero");
}catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Número de argumentos inválidos");
}catch (NumberFormatException e) {
System.out.println("Digite apenas números inteiros");
}
}
}
Mas daí da os erros das Exception:
estrutura.java:10: cannot find symbol
symbol : class AritmeticException
location: class estrutura
}catch (AritmeticException e) {
^
estrutura.java:12: cannot find symbol
symbol : class ArrayIndexOutOfboundsException
location: class estrutura
}catch (ArrayIndexOutOfboundsException e) {
^
Diz que não tem essas classe, mas na verdade são exceções, como no caso da linha 14, se o cara digitar números quebrados, já que o formato do número é inteiro, vai mandar a mensagem de erro, pedindo para digitar números inteiros…
Como eu resolvo esses erros???
Vlw…
Cris tenta mudar os args!!!
os dois estão “0”
ok
Mudei e mesmo assim continua dando erros, não nesse caso, mas diz que eu não tenho aquelas classes, que não tem nada a vê, são só exceções…
Mas isso também tava errado mesmo era 0 e 1.
Vlw
Cris na linha 14 falta um c em exception
vlw
da uma olhada nos outro tb
ok
Esse agora fecho, mas os outros ainda não…
Tem alguém aí do GUJ pra nos ajudar???
Vlw…
cris esta faltando um h arithmetic!!!
ok ve ai e muda
vlw
tem varios erros “ortograficos” ai…
nao esta na hora de usar um Eclipse pra te ajudar com isso não?
aqui esta o metodo arrumado
class estrutura {
public static void main (String args []) {
try {
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
System.out.println("Soma = " + (num1 + num2));
System.out.println("Subtração = " + (num1 - num2));
System.out.println("Multiplicação = "+ (num1 * num2));
System.out.println("Divisão = " + (num1 / num2));
}catch (ArithmeticException e) {
System.out.println("Erro de divisão por zero");
}catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Número de argumentos inválidos");
}catch (NumberFormatException e) {
System.out.println("Digite apenas números inteiros");
}
}
}
era isso mesmo, mas essa não fui eu tava errado no exemplo e também já achei o erro da linha 12 era ArrayIndexOutOfBoundsException e, com o B maiúsculo
vlw…
Bom agora tudo arrumado, está executando apenas o segundo catch:
ArrayIndexOutOfBoundsException e, dando a mensagem: “Número de argumentos inválidos”, era isso que eu não entendo, para que serve esse exception, como eu tenho que executar???
vlw…
vc deve executar com 2 argumentos…
jah q existe o [0] e o [1]…
entao seria:
" java estrutura 4 2 "
java estrutura 6 3
java estrutura 1 2
e por ai vai
ah vlw, então é pra isso que serve os args[], os argumentos de cada execução né, é por aí…
Agora se esclareceu muitas dúvidas que eu tinha…
brigadão…
Achei esse exemplo muito loco, na minha opinião, ele fecha o class antes de terminar:
class xy {
public static void main (String args []) {
if (args.length == 2) {
System.out.println("Resultado = " + soma (args[0], args[1]));
}else {
System.out.println("Entre com dois valores inteiros");
}
}
}
public static int soma (String num1, String num2) {
int x=0, y=0;
try {
x = Integer.parseInt(num1);
y = Integer.parseInt(num2);
}catch (NumberFormatException e) {
System.out.println("Digite apenas caracteres numéricos");
System.exit (0);
return (x + y);
}
}
Dá erro na linha 10 pedindo um class, porque o de cima já está fechado, aí tentei fechar só no final e também não deu, o que eu faço???
bom ai é falta de analise sua…
o class xy esta sendo fechado na linha 9…
entao o metodo “soma” esta fora da classe…
apague a linha 9…
e coloque o “}” na linha 21
depois disso vai dar um erro… pedindo um return do INT…
esse eu deixo com vc…
Dica: o Return deve acontecer de qualquer forma dentro de um metodo (q exige um retorno)…
no caso esta apenas retornando se der Catch… vc precisa fazer algo que retorne um INT de qualquer maneira
Bom era esse o exemplo que estava na apostila, como eu falei muito loco, porque fechava o class antes de acabar, isso eu vi, analisei e postei…
…Também postei que já tentei fechar no final e que dava um erro, que é esse que você mencionou do return do INT e foi esse erro que eu pedi ajuda…, pois eu não sei e nessa apostila (que não serve pra muita coisa) não explica como faz.
Mas deixe comigo.
Pessoal aproveitando o tópico e eu estou montando uma tela que faz contagem do caracteres!!!!!! Usando na contagem de bytes a função length!!!! ate ai tudo bem! Mas eu tentei fazer umas ganbiarras para fazer a contagem de bits também mas não deu certo pois não esta recebendo a frase!!!!
Alguém ai ajuda
vlw agradeço desde jah
o erro da na linha 11
import javax.swing.JOptionPane;
class texto {
public static void main (String args[]) {
String frase;
String bits;
int totbits;
frase = JOptionPane.showInputDialog(null, "Digite uma Frase","Contagem de Bytes e Bits", JOptionPane.PLAIN_MESSAGE);
JOptionPane.showMessageDialog(null, "O número de Bytes é " + frase.length());
bits = frase.length();
int bitsa = Integer.parseInt(bits);
totbits = bitsa*8;
JOptionPane.showMessageDialog(null, "O número de Bits é " + totbits);
}
}
bits foi declarada como uma variavel do tipo String…
ela esta recebendo uma INT do metodo frase.length();
entao nao são compativeis… =)
para arrumar vc precisa fazer um CAST para String…
ou simplesmente colocar ’ +"" ’
exemplo
bits = frase.length()+"";
Eu modifiquei a declaração de bits para Int;
mas agora da erro na linha de baixo!!!
achei que não teria problema pois a frase foi declarada string e bits estaria recebendo a frase para depois fazer a conversão!!!
e agora???
vlw
Ops não vi o resto da tua mensagem!!!
fiz as modificações agora da erro na conversão e no + acho que vou precisar fazer este cast???
tem variaveis inuteis ai…
vamos rever…
praq a variavel String bits ?
ela nao tem utilidade…
entao vc pode deletar a linha 7 e 11
e mudar a linha 12
de:
int bitsa = Integer.parseInt(bits);
para:
int bitsa = frase.length();
Vlw alucardeck deu certo feito entaum !!!
brigado agora nas aulas de Introdução de Processamento de Dados da pra testa essa telinha!!!
vlw
achei que teria de receber a frase pra depois converter mas era inútil!!!
heheh rlx…
no caso vc jah declarou uma String chamada “frase”…
entao nao existiria nenhum motivo pra vc fazer uma copia dela =)
e como o metodo .length retorna uma INT… vc pode passar direto pra ela, sem problemas…
Sim sim agora concordo totalmente!!!
é que antes havia dado um erro ao passar direto pra ela!
Dava erro na conversão, mas devia ser apenas um erro na hora da digitação
vlw
import javax.swing.JOptionPane;
class texto {
public static void main (String args[]) {
String frase;
int totbits;
frase = JOptionPane.showInputDialog(null, "Digite uma Frase","Contagem de Bytes e Bits", JOptionPane.PLAIN_MESSAGE);
JOptionPane.showMessageDialog(null, "O número de Bytes é " + frase.length());
totbits = frase.length()*8;
JOptionPane.showMessageDialog(null, "O número de Bits é " + totbits);
}
}
Ou ainda:
import javax.swing.JOptionPane;
class texto {
public static void main (String args[]) {
String frase = JOptionPane.showInputDialog(null, "Digite uma Frase","Contagem de Bytes e Bits", JOptionPane.PLAIN_MESSAGE);
JOptionPane.showMessageDialog(null, "O número de Bytes é " + frase.length());
JOptionPane.showMessageDialog(null, "O número de Bits é " + frase.length()*8);
}
}