进程暂停时Java运行时执行程序getInputStream

约翰尼·翁伯格(Johnny Umberger)

我正在为Windows命令行上运行的可执行文件创建包装器。该可执行文件需要执行一些命令,然后尝试连接到另一台设备。然后它输出并报错!或准备好“设备名称”,直到应用程序退出,我才收到此消息。问题是此应用程序是一个隧道,允许我在外部设备上运行telnet,但我需要确保设备已准备就绪,这是我的代码。

public void startUDPTunnel() {
    //TODO Pull Amino serial number from webportal
    Properties prop = new Properties();
    InputStream inConfig = getClass().getClassLoader().getResourceAsStream("config.properties");
    try {
        prop.load(inConfig);
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
    String server = prop.getProperty("server");//config.GetProp("server");
    System.out.println(server);
    String port = prop.getProperty("port");//config.GetProp("port");
    System.out.println(port);
    String location = prop.getProperty("location");//config.GetProp("location");
    System.out.println(location);
    String url = prop.getProperty("URL");
    System.out.println(url);
    String input = "";
    try {
        input = getSerial(url);
        System.out.println(input);
        Process p = Runtime.getRuntime().exec(location+"udptunnel.exe -c 127.0.0.1 23 "+input+" "+server+" "+port+" 127.0.0.1 23");  

        threadSleep();
        BufferedReader in = new BufferedReader(
                            new InputStreamReader(p.getInputStream()));
        String line = null;
        while ((line = in.readLine()) != null) {
            if(line.equals("ERROR!")){
                System.out.println("There was an ERROR");
            }
            if(line.equals("Ready for \""+input+"\"")){
                System.out.println("Load Telnet");
            }
        }
        p.destroy();
    } catch (IOException e) {  
        e.printStackTrace();  
    }
}

抱歉,此函数中还有很多调试代码。

编辑

好的,我很确定知道问题出在哪里bufferReader.readLine()需要\ n或\ r或只是挂起,无论如何都可以在没有缓冲区的情况下观看流?

马修·克莱恩(Matthew Cline)

您应该使用ProcessBuilder,然后使用redirectErrorStream()认为这将导致stdout进程无法缓冲。即使不是,您也只需阅读一个InputStream即可获得stdoutstderr

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用运行时执行程序从Java调用ImageMagick转换

来自分类Dev

如何异步运行3个进程,当一个进程返回所需值时,停止其他两个进程并继续执行程序?

来自分类Dev

如果在程序运行时删除程序执行程序,会发生什么情况?

来自分类Dev

运行时异常:执行doInBackground()时发生错误

来自分类Dev

当我运行程序时出现运行时错误,但在使用调试器时却没有

来自分类Dev

在多个执行程序中运行时,火花作业被卡住

来自分类Dev

SBCL:在运行时收集运行程序进程的输出

来自分类Dev

如何暂停进程并继续执行程序?

来自分类Dev

Java程序出现运行时错误

来自分类Dev

进程终止时如何获得进程运行时

来自分类Dev

Android,运行时执行程序删除软件包

来自分类Dev

使用运行时执行程序从Java调用ImageMagick转换

来自分类Dev

Java运行时执行-确认问题

来自分类Dev

程序执行时间极短的运行时间

来自分类Dev

当我运行程序时出现运行时错误,但在使用调试器时却没有

来自分类Dev

运行时异常:执行doInBackground()时发生错误

来自分类Dev

通过运行时类创建进程时,cmd中的执行错误

来自分类Dev

在多个执行程序中运行时,火花作业被卡住

来自分类Dev

SBCL:在运行时收集运行程序进程的输出

来自分类Dev

从Java应用程序将jdb作为进程运行时,输出不完整

来自分类Dev

JAVA运行时执行程序在大型机USS环境中为netstat命令抛出IOException

来自分类Dev

如何暂停进程并继续执行程序?

来自分类Dev

如何测量Java进程的实际运行时间?

来自分类Dev

使用类路径中的 Kotlin 运行时库执行 Java 和 Kotlin 程序

来自分类Dev

进程未在 Java(运行时)中正确终止

来自分类Dev

Java 运行时,在关闭应用程序时执行一些操作

来自分类Dev

在 Delphi 中运行时如何运行命令行程序并发送密钥?

来自分类Dev

Java进程错误无法运行程序

来自分类Dev

避免预定执行程序创建多个 Java 进程实例

Related 相关文章

  1. 1

    使用运行时执行程序从Java调用ImageMagick转换

  2. 2

    如何异步运行3个进程,当一个进程返回所需值时,停止其他两个进程并继续执行程序?

  3. 3

    如果在程序运行时删除程序执行程序,会发生什么情况?

  4. 4

    运行时异常:执行doInBackground()时发生错误

  5. 5

    当我运行程序时出现运行时错误,但在使用调试器时却没有

  6. 6

    在多个执行程序中运行时,火花作业被卡住

  7. 7

    SBCL:在运行时收集运行程序进程的输出

  8. 8

    如何暂停进程并继续执行程序?

  9. 9

    Java程序出现运行时错误

  10. 10

    进程终止时如何获得进程运行时

  11. 11

    Android,运行时执行程序删除软件包

  12. 12

    使用运行时执行程序从Java调用ImageMagick转换

  13. 13

    Java运行时执行-确认问题

  14. 14

    程序执行时间极短的运行时间

  15. 15

    当我运行程序时出现运行时错误,但在使用调试器时却没有

  16. 16

    运行时异常:执行doInBackground()时发生错误

  17. 17

    通过运行时类创建进程时,cmd中的执行错误

  18. 18

    在多个执行程序中运行时,火花作业被卡住

  19. 19

    SBCL:在运行时收集运行程序进程的输出

  20. 20

    从Java应用程序将jdb作为进程运行时,输出不完整

  21. 21

    JAVA运行时执行程序在大型机USS环境中为netstat命令抛出IOException

  22. 22

    如何暂停进程并继续执行程序?

  23. 23

    如何测量Java进程的实际运行时间?

  24. 24

    使用类路径中的 Kotlin 运行时库执行 Java 和 Kotlin 程序

  25. 25

    进程未在 Java(运行时)中正确终止

  26. 26

    Java 运行时,在关闭应用程序时执行一些操作

  27. 27

    在 Delphi 中运行时如何运行命令行程序并发送密钥?

  28. 28

    Java进程错误无法运行程序

  29. 29

    避免预定执行程序创建多个 Java 进程实例

热门标签

归档