Olá:
Entre aqui para fazer esta perguta e logo vi a mensagem “Inicializar de maneira mais fácil”: fiquei com esperança, mas por ali não tive solução. 
Gostaria de saber se alguém pode me ajudar a inicializar meu aplicativo com uma única linha de comando, substituindo o .bat que uso. O problema de usar um .bat é que ele deixa uma tela preta aberta que o usuário tem que fechar, incomodando-o.
Eu queria rodar apenas
javaw -classpath myapp.jar;systray4j.jar;log4j-1.2.11.jar;etc.jar pacote.e.minha.classe.main parametro1 parametro2
Se eu criar um atalho no Windows apontando para este comando javaw etc ou se eu criar um item no menu Iniciar/MyAPP para disparar a aplicação, não tem problema, esta única linha javaw etc funciona.
O problema é que o aplicativo deve iniciar quando o usuário se loga e isto só funciona se eu colocar usar um .bat para colocar um cd para o home da minha aplicação:
cd %MYAPP_HOME%
javaw -classpath myapp.jar;systray4j.jar;log4j-1.2.11.jar;etc…jar pacote.e.minha.classe.main parametro1 parametro2
Se eu não puser este “cd”, sou avisada de que ele não achou a MainClass.
Já tentei:
- colocar o subdiretório completo antes de cada jar (javaw -classpath C:\Program Files\MyApp\myapp.jar,C:\Program Files\MyApp\systray4.jar etc);
- setar o classpath como variável de ambiente para todos os usuários
- criar um outro programa que chame este
e não obtive sucesso.
Outras informações:
-
para iniciar meu programa no login, criei no regedit uma chamada para o meu .bat em Software\Microsoft\Windows\CurrentVersion\Run\
-
meu manifest tem uma linha indicando qual a MainClass
-
no meu subdiretório tenho ainda um systray.dll, um arquivo user.txt que a aplicação cria e depois lê e um myapp.log criado pelo log4j. A referência a estes arquivos no programa é feita sem diretório, i.e., a aplicação assume que o arquivo é gravado e lido do diretório corrente.
Tudo isto funciona com a tal da única linha, sem classpath e sem cd my_app, desde que o “javaw etc” não seja chamado na hora do login, via entrada que fiz no regedit.
Qualquer idéia será muito bem-vinda!
Denise