java通过命令行方式调用本地JAR包的问题

时间:2022-01-12 09:12:08
我在一个工程里调用了本地另一个JAR,代码如下
        Process pro = null;
        Runtime rt = Runtime.getRuntime();
        try {
          pro = rt.exec("java -jar " + System.getProperty("user.dir") +
                        "/client.jar");
        } catch (IOException ex) {
          ex.printStackTrace();
        }
我在一个工程里通过上面代码调用了那个JAR包,JAR包里是一个SOCKET通信程序,一开始JAR包里的程序执行了,但是不知道为什么执行到某个地方就卡住了,把这个工程关了那个程序又会继续执行了?高手来帮帮忙啊,谢谢了!!!

7 个解决方案

#1


我在JDK的Process 类里看到这么一段话:因为有些本机平台仅针对标准输入和输出流提供有限的缓冲区大小,如果读写子进程的输出流或输入流迅速出现失败,则可能导致子进程阻塞,甚至产生死锁。 
我想应该是发生死锁了不知道怎么解决啊

#2


路过,友情up...

#3


该回复被版主删除

#4


再开一个线程来处理

#5


友情up!

#6


最好是起一个新的线程去处理这种问题
这样即使出现了问题,整个程序也不会有很大的影响

#7


已解决谢谢

#1


我在JDK的Process 类里看到这么一段话:因为有些本机平台仅针对标准输入和输出流提供有限的缓冲区大小,如果读写子进程的输出流或输入流迅速出现失败,则可能导致子进程阻塞,甚至产生死锁。 
我想应该是发生死锁了不知道怎么解决啊

#2


路过,友情up...

#3


该回复被版主删除

#4


再开一个线程来处理

#5


友情up!

#6


最好是起一个新的线程去处理这种问题
这样即使出现了问题,整个程序也不会有很大的影响

#7


已解决谢谢