Você precisa executar java YourClassName
, não java YourClassName.class
.
O problema é que você está incluindo o sufixo .class
no comando.
Existem algumas outras explicações possíveis, já que você não deu o comando específico que você executou. É possível que você esteja executando o comando de algum lugar diferente do local do seu arquivo .class
e não fornecendo um caminho completo para ele, ou que esteja digitando incorretamente o nome dele e assim por diante. No entanto, incluir um sufixo .class
espúrio, que o comando java
não espera, é a causa mais comum desse problema.
Suponha que a classe que contém o ponto de entrada do seu programa ( main()
method) seja chamada Foo
e que seu código-fonte esteja em um arquivo no diretório atual chamado Foo.java
, para que você compilasse seu programa executando %código%. Como javac Foo.java
é o nome da classe, isso produz um arquivo chamado Foo
contendo o bytecode Java compilado para essa classe.
Para executar o programa, você deve executar:
java Foo
Sua descrição faz parecer que você está executando Foo.class
. Esse é um obstáculo comum para usuários que usam o comando java Foo.class
para executar java
arquivos pela primeira vez (estejam eles programando em Java ou apenas executando .class
arquivos fornecidos por outra pessoa).
.class
não funciona; o comando java Foo.class
interpreta seu argumento como o nome da classe que contém o ponto de entrada, não o nome do arquivo. Quando você executa java
, ele sabe procurar por um arquivo chamado java Foo
.