Como executar aplicação deixando a janela de prompt minimizada?

Há alguns dias resolvi um pequeno problema, com a ajuda de um dos colaboradores do fórum (jmenezes).

Isso me custou 02 dias de dor de cabeça.

Como percebi que muitos desenvolvedores iniciantes (como eu) passam pela mesma complicação, resolvi criar esse tópico, exclusivamente, para divulgar a solução (que é bastante simples).

Como minha aplicação necessita ser executada, através do janela cmd (prompt do DOS), me deparei com o fato de que minha aplicação Java era executada, mas a JANELA PRETA do DOS ficava ABERTA, por trás da minha aplicação.

Achei a solução, combinando os comandos START e CMD, como segue na próxima postagem.

Ao invés de START ou CMD, a solução foi USAR OS DOIS: nesse caso, o START chamando o CMD. Cada um com seus argumentos:

start /min cmd /c java restante-da-chamada

Dessa forma, a janela do DOS fica minimizada e só o aplicativo Java aparece na tela.

Funcionou, que foi uma belezura.

Abraço.

A nível de curiosidade, porquê você precisa executar o .jar da sua aplicação partindo do cmd ao invés de executar diretamente o .jar?

Em principio é só usar o javaw ao invés do java.

Fiz um projeto modular.

Precisaria usar o JLink, para empacotar a aplicação em um JAR executável, (o JAR normal não roda com dois cliques, quando o projeto é modular).

Porém o JLink não funciona quando existem bibliotecas que possuem “módulos automáticos”. Ou seja, bibliotecas que não sejam modularizadas. No meu caso, em particular, o problema foi com a biblioteca do Postgres (ela não é modularizada).

Enquanto a gluon não resolver esse problema (ou enquanto o pessoal do Postgres não modularizar a biblioteca), precisarei usar assim mesmo (a não ser que alguém me informe uma outra solução).

Você tem alguma sugestão?

Detalhe: na postagem, abaixo, consta tudo o que eu já tentei:

@staroski, sou iniciante, por isso pergunto: o javaw não é para aplicativos Java Web?

No meu caso, estou programando em desktop.

Aliás… Tentei usar o javaw, aqui. Não funcionou. Na realidade, ele não dá nenhum retorno.

Usei a seguinte sintaxe: javaw meuapp.jar

Faz um tempo que não atuo com desenvolvimento desktop, por isso a curiosidade, também nunca fiz nada de forma modular voltado a desktop.

Não.
O javaw executa o java suprimindo o console.

1 curtida

Cara…

Então, me ajuda.

A sintaxe para usar o javaw, é a que eu usei, acima?

Essa: javaw meuapp.jar

Ou existe uma outra maneira?

O javaw recebe os mesmos parâmetros que o java.

Se não está executando com o javaw, executa com o java para ver o erro no console.

Bom galera eu achei a solução!!!
quem esta trabalhando com javaFx sabe que no run temos que add linha de comando com o path do javafx ou seja (run configuration > argument > vm argument) isso no eclipse.
pois bem nesse local temos que por o modulo path do javafx… essas informações quando exportamos o projeto nao são passadas então quando criamos o executava .jar temos que executar ele com esse modulo, e como fazemos isso?? simples…
@echo off
start javaw -jar AQUI FICA AS MESMAS INFORMAÇOES QUE COLOCAMOS LÁ EM VM ARGUMT projeto.jar
exit

pronto esse é o codigo que eu uso para rodar meu projeto sem exebir o prompt.
ps: esse codigo é criando em um arquivo .bat na mesma pasta do seu arquivo .jar.