Printf

7 respostas
L

Srs, bom dia!

Iniciei meus estudos em Java, comprei o Livro Java como programar edição 8. Estou com uma dificuldade em um programa simples que tem de exemplo no Livro. Vejamos:

public class Welcome4 { // main method begins execution of Java application public static void main( String[] args ) { System.out.printf( "%s\n%s\n", "Welcome to", "Java Programming!" ); } // end method main } // end class Welcome4

Quando eu faço um run no Elipse é apresentado seguinte erro:
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The method printf(Locale, String, Object[]) in the type PrintStream is not applicable for the arguments (String, String, String)

at Welcome4.main(Welcome4.java:7)

Mas se eu usar .class que está nos aquivos de exemplos do livros o programa funciona muito bem. Tivemos alguma mudança no comando Printf para versão 8 Java? Se alguém puder esclarecer eu ficarei grato.

Bom dia a todos.

7 Respostas

Reginildo

O código acima não tem erros. Deve ser a maneira que você está tentando executar o arquivo que está dando erro. Tente criar o arquivos .java e compilar pelo prompt de comandos e depois o execute.

L

Reginildo,

eu fiz esse teste e erro persiste. Ele só funciona se eu usar o arquivo .class que vem no diretório de exemplos do livro. Observei que na mensagem de erro o compilador diz que para usar Printf você tem usar a seguinte estrutura (String, Object[]) e que eu não posso usar String, String. Eu não descobri ainda o que é Object[] mas estou pesquisando. Eu penso que deve haver alguma diferença no pacote JDK por que não é possível que livro com esse conceito esteja com código incorreto.

C

Se o arquivo de exemplo do livro funciona e o seu não, só pode ser problemas com a versão da jdk.

Entre no DOS (windows) ou terminal (linux) e digite:

javac -version

Se a versão que ele imprimir for diferente, você terá de informar na variável de ambiente JAVA_HOME o novo caminho da jdk 8 no caso.

dúvidas quanto à configuração de variáveis de ambiente, segue link explicando a respeito.

Espero ter ajudado.

L

Cara, você está certo. O livro diz que o programas estão na versão JDK 6Update 11. Mas o que tenho na minha máquina é 1.8.0_05. Eu tenho configurado a variável de ambiente mas o que eu penso ser estranho e não funcionar no 1.8.0 versão mas recente. Vou tentar achar o que pode ter mudado para nova versão, caso eu não encontre vou instalar a versão 6 para prosseguir com os estudos.

Obrigado pela dica.

C

Logo imaginei porque eu também tenho esse livro e me lembrei dessa versão utilizada nos códigos de exemplo.

Estranho o seu código não rodar na nova versão, copiei seu código e compilei na versão mais recente e foi tranquilo aqui, mas fiz tudo pelo dos, interessante você ver a configuração do eclipse para saber qual versão ele está usando.

Window -> Preferences -> Java, lá verifique os itens:

Compiler
Installed JRE’s

Uma sugestão, evite usar o eclipse por enquanto, faça os exemplos compilando-os diretamente pelo DOS quando estiver mais adaptado aí sim use-o.

Espero ter ajudado.

L

Cara mais uma vez você estava certo. Eu mudei a IDE agora estou usando Jcreator e código funcionou perfeitamente. Pelo visto é alguma coisa no Eclipse que eu estava usando. Eu penso que minha versão e Galileu mas não tenho certeza.

Obrigado e grande abraço.

C

É… realmente, Eclipse Galileu e jdk 1.8 não combinam, a versão do Eclipse para ele na minha opinião o deixa “defasado”.

Se você está usando-o apenas para estudos, acho que vale a pena baixar a última versão, assim garante compatibilidade com a jdk.

Abraço e bons estudos.

Criado 22 de maio de 2014
Ultima resposta 22 de mai. de 2014
Respostas 7
Participantes 3