3
respostas

Chamar .jar via electron usando diretiva ${__dirname}

Olá, estou iniciando os estudos para desenvolver uma aplicação em Electron que um dos pontos dela, será a chamada de um arquivo .jar. Pesquisei em alguns lugares na internet e consegui efetuar a chamada do .jar usando um tal de 'child_process'. Então eu consegui executar normalmente meu java, porém aqui vem um adendo de algo que não estou conseguindo fazer.

Esse meu .jar cria dinamicamente um arquivo de log (criado pelo log4j) que fica numa pasta criada dinamicamente também chamada log, ai vem minha questão quando eu tenho o meu .jar dentro da mesma pasta do main.js e chamo o .jar direto, ele roda perfeito, ou seja, chama o .jar e cria a pasta log e vai preenchendo meu arquivo de log, porém se eu simplesmente adicionar uma pasta chamada arquivo_jar e chamar ele usando //arquivo_jar//nome.jar args, ou ${__dirname}\arquivo_jar\nome.jar ou qualquer outro jeito. O jar ele até executa, porém a pasta log que eu comentei anteriormente não é criada de jeito nenhum.

poderiam me ajudar a resolver o caso ?

minha chamada está sendo feita assim:

var exec = require('child_process').exec, child;
    child = exec(`java -jar ${__dirname}\\agent\\gdc-agent-totvs-3.0.0.jar ${__dirname}\\agent\\my.properties `,
        function (error, stdout, stderr){
            console.log('stdout: ' + stdout);
            console.log('stderr: ' + stderr);
            if(error !== null){
              console.log('exec error: ' + error);
            }
    });

Muito obrigado.

3 respostas

Oi Helio, tudo bem? Deixa eu ver se entendi direito. Se você deixar o jar na pasta onde tem o main.js ele funciona normalmente, porém, se mudar a pasta do jar, já não funciona como antes, é isso mesmo?

Isso mesmo Wanderson, tem alguma ideia do que possa ser ? Na verdade quando rodo na mesma pasta ele gera a pasta de log toda certinha, mas quando adiciono os arquivos numa pasta acima, ele já não roda direito, ele roda o java, mas não cria a pasta de log.

É no minimo estranho ele conseguir executar o jar mas o jar não conseguir criar as pastas. Você está usando Windows, Linux, Mac? Já verificou as permissões da pasta? Se você executar o jar manualmente nesse nível acima, ele cria a pasta normalmente?