Pergunta

Eu lançar o seguinte linha de comando (processo) de um Windows VC ++ 6 programa usando CreateProcess (ou _spawnv ()):

  • java -cp c: \ dir \ updates.jar; c: \ dir \ main.jar Principal

e actualizações de classe em updates.jar (overiding alguns em main.jar) não são lidos ou encontrados. É como se a biblioteca updates.jar não pode ser encontrado ou ler.

Se eu lançar a mesma linha de um atalho, ou a partir da linha de comando adequada, tudo é encontrado e executado corretamente.

Se eu lançar uma JVM a partir da linha de comando, mantê-lo funcionando, e inicie o stub executável (acima), então tudo funciona bem também. (Isso faz parecer que a questão é uma coisa direitos de arquivo).

Qualquer visão seria muito apreciada!

- Edward

Foi útil?

Solução

Tente usar utilitário FileMon da Microsoft para descobrir o que está acontecendo. Defina o filtro de inclusão de "atualizações" de se concentrar no problema.

http://technet.microsoft.com/en-us/sysinternals /bb896642.aspx

Outras dicas

Você já tentou isso em outra máquina? Outro OS? Qual JVM você está usando? Você já tentou diferentes JVMs?

Você pode fornecer-nos com um exemplo mínimo que demonstra o problema?

Graças jdigital !

Eu tentei FileMon e ele me mostrou o que eu estava fazendo de errado. O CreateProcess chamada executável () teve um identificador de arquivo não fechada para updates.jar de uma tentativa de copiar o JAR atualização anterior. Bad código que funciona no ambiente de produção, mas não no ambiente de teste.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top