O problema que gera o erro
O Java procura seu aplicativo no caminho especificado pela sua diretiva package
. Nesse caso, com.company
.
Você pode compilar esse programa simples comentando a diretiva do pacote, compilá-lo sem o pacote ou criar o caminho e chamá-lo pelo caminho completo.
$ mkdir -p com/company
$ mv Hello.class com/company/
$ java com/company/hello
hello, world
Se você remover a linha package com.company;
comentando, ela funcionará como você já tentou e espera.
Se você tiver um projeto grande com várias pastas para seus arquivos de classe, poderá usar um programa gerenciador de jar ou a versão da linha de comandos jar para criar um arquivo Hello.jar .
Seu IDE está fornecendo o caminho e outros detalhes especificados acima. Você pode criar manualmente esse ambiente para executar seus comandos (além de ter várias classes e pacotes em seu archive) usando o comando jar .
Usando o comando Jar para criar programas jar
Você pode criar seu aplicativo Hello para executar como pretendido e ter o tipo de caminho incluído usando este método:
Crie o caminho
$ mkdir -p com/company
Coloque seus arquivos de classe no caminho da linha do pacote:
$ mv Hello.class com/company
Crie um arquivo de manifesto para indicar o main class
location
manifest.txt:
Manifest-Version: 1.0
Main-Class: com.company.Hello
Execute o comando jar para criar o pacote
$ jar cfm test.jar manifest.txt com /
Agora você terá um novo arquivo criado, chamado test.jar . O segundo argumento poderia ter sido chamado de qualquer coisa, incluindo Hello.jar ou apenas olá . O novo arquivo pode ser executado de várias maneiras:
$ java -jar test.jar
$ ./test.jar
Se você criou o arquivo jar com o segundo argumento sendo hello
, pode executá-lo com:
$ ./hello
Você também pode renomear um arquivo java.jar para qualquer nome depois de criado e executá-lo com esse nome.
A execução de uma classe Java é muito restritiva, pois deve ser executada pelo nome da classe pela qual foi compilada.
Para executar um arquivo jar como um comando sem o argumento "-jar", você teria que alterar o bit de permissão ( chmod +x Hello.jar
).
Detalhes do comando de jarros
Os argumentos jar neste exemplo são:
-c Create a new archive
-f Specify the archive (jar filename)
-m Include manifest information from the specified manifest file
Jar é instalado como parte do pacote JDK. Você pode obter mais detalhes sobre como usar a partir das páginas man ( man jar
), bem como uma ajuda rápida, executando-o sem um argumento.