Class.java

Usuario do linux Ubuntu via terminal cria a classe mais não encontra

“Erro: Não foi possível localizar nem carregar a classe principal PrimeiroProgama”

Se alguém puder me ajudar agradeço desde já.

O que você está fazendo exatamente ?

Achei o tópico meio confuso, está tentando executar um .jar pelo terminal, é isso ?

Não,estou fazendo o basico javac arquivo.java e java arquivo.
Desculpe se pareceu confuso.
Bom eu estou entrando com o terminal a onde está java.class que foi criado e recebo na mensagem acima.

No linux não sei quais são as configurações do java, mas no windows é só questão de definir as variáveis de ambiente.

O problema é igual a este | [RESOLVIDO] Classe principal não pode ser encontrada | Agora estou no Windows e seque não reconhecendo o arquivo .class

Como estão as configurações da sua JAVA_HOME e Path ?

JAVA_HOME
;%JAVA_HOME%\bin

path
C:\Arquivos de Programas\Java\jdk1.8.0_191

Acredito que suas configurações estão erradas!

Veja:

Agora apareceu está mensagem de erro.
(Capturar)

O caminho que você está tentando acessar está correto ?
Isso acontece porque a classe CPrincipal não foi encontrada.

Os caminhos das variaveis de ambiente são estes:

CLASSPATH
;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar

JAVA_HOME
C:\Program Files\Java\jdk1.8.0_191\
PATH
;%JAVA_HOME%\bin

O caminho da classe do seu projeto, não o das configurações!
As configurações estão corretas agora.

Mais o caminho é o mesmo…
[java]

Não se utiliza a variável de ambiente CLASSPATH já faz uns 20 anos.
O classpath é específico para cada aplicação e deve ser informado via META-INF ou via parâmetro da máquina virtual.

JAVA_HOME e PATH devem conter:

JAVA_HOME=<pasta raíz do seu JDK>
PATH=<caminhos existentes>;%JAVA_HOME%\bin;

Mas mensagem de erro persiste

É que você está tentando executar sua classe assim:

java .\CPrincipal

E o correto é assim:

java -classpath . CPrincipal

Continua dando erro:

java -classpath . CPrincipal
PS C:\Users\Donato> cd C:\Users\Donato\Downloads\java
PS C:\Users\Donato\Downloads\java> java -classpath . CPrincipal
Exception in thread “main” java.lang.UnsupportedClassVersionError: CPrincip
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: CPrincipal. Program will exit.

PS C:\Users\Donato\Downloads\java>

Qual a versão do javac e qual a versão do java?

Executa isso:

javac -version

E isso:

java -version

PS C:\Users\Donato> java -version
java version "1.6.0_23"
Java™ SE Runtime Environment (build 1.6.0_23-b05)
Java HotSpot™ Client VM (build 19.0-b09, mixed mode, sharing)
PS C:\Users\Donato> javac -version
javac 1.8.0_191

javac 1.8.0_191
java  1.6.0_23

Entendeu o problema? Seu JDK é 1.8 e o seu JRE é 1.6.
Você está compilando para Java 1.8 mas está tentando executar com Java 1.6.

Você pode compilar seus fontes passando para o javac o parâmetro -target 1.6
Mas recomendo você usar um JRE da mesma versão que o seu JDK.