none
Pegar o retorno de um .jar executado na página RRS feed

  • Pergunta

  • Dentro de um contesto preciso executar um .jar, estou usando o código abaixo, mas gostaria de saber como eu pego o retorno deste .jar.

            

                ProcessStartInfo processInfo = new ProcessStartInfo("java.exe", parameter)
                {
                    CreateNoWindow = false,
                    UseShellExecute = true
                };
                Process proc;
    
                if ((proc = Process.Start(processInfo)) == null)
                {
                    throw new InvalidOperationException("Erro executing java");
                }

    quarta-feira, 26 de outubro de 2016 18:29

Respostas

  • Consegui, precisa ser habilitado o RedirectStandardOutput para true e UseShellExecute para false e você pega o valor de saida com o StandardOutput.ReadToEnd();

      Process proc = new Process
                {
                    StartInfo = new ProcessStartInfo
                    {
                        FileName = "java.exe",
                        Arguments = parameter,
                        UseShellExecute = false,
                        RedirectStandardOutput = true,
                        CreateNoWindow = true
                    }
                };
                proc.Start();
                proc.WaitForExit();
                line = proc.StandardOutput.ReadToEnd();

    • Marcado como Resposta Ivan Junges quinta-feira, 27 de outubro de 2016 18:55
    quinta-feira, 27 de outubro de 2016 18:55

Todas as Respostas

  • Ivan, essa comunicação direta é a única saída? Veja aqui: http://stackoverflow.com/questions/25864831/best-way-to-exchange-data-between-c-sharp-and-executable-jar

    Rodrigo Reis Ferreira
    Microsoft Certified

    quarta-feira, 26 de outubro de 2016 19:32
  • Olá, pior que sim, pois preciso executar um .jar especifico, o crypt-5.0.0.jar que irá me retornar uma string criptografada.

    Por isso usando isso: 

    new ProcessStartInfo("java.exe", "-jar crypt-5.0.0.jar encrypt CBC \"textoAqui\" 123 ")

    O problema é que gostaria de ter o retorno.

    quinta-feira, 27 de outubro de 2016 11:12
  • Consegui, precisa ser habilitado o RedirectStandardOutput para true e UseShellExecute para false e você pega o valor de saida com o StandardOutput.ReadToEnd();

      Process proc = new Process
                {
                    StartInfo = new ProcessStartInfo
                    {
                        FileName = "java.exe",
                        Arguments = parameter,
                        UseShellExecute = false,
                        RedirectStandardOutput = true,
                        CreateNoWindow = true
                    }
                };
                proc.Start();
                proc.WaitForExit();
                line = proc.StandardOutput.ReadToEnd();

    • Marcado como Resposta Ivan Junges quinta-feira, 27 de outubro de 2016 18:55
    quinta-feira, 27 de outubro de 2016 18:55