Tag: 进程

Java流程流

我遇到与某些终端应用程序交互的问题(在我的情况下,它是openSSL)。 我有一个命令发送,然后这个应用程序想要密码和回复给定的密码。 我的代码不起作用。 我的意思是我没有看到它的任何输出。 为了测试我还做了一个简单的应用程序,它等待两个字符串输入并从我的Java代码中运行它。 你有什么建议吗? ProcessBuilder pb = new ProcessBuilder(“openssl.exe”); Process process = pb.start(); final InputStream is = process.getInputStream(); new Thread(new Runnable() { public void run() { try { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } finally […]

java make a method等待另一个进程的响应

在我的程序中,我连接到另一种语言的解释器进程。 我有时需要程序向解释器询问几件事并使用它的响应。 该过程存储在IProcess变量中,并且通过该过程的IStreamsProxy完成通信。 为了收到响应,我在IStreamsProxy中添加了一个IStreamListener。 但是,当我写入IStreamsProxy(使用write()方法)时,我需要代码来等待响应,例如要调用的侦听器的streamAppend方法。 我试着使用wait()和notify()方法,但我不知道应该在哪些对象上调用它们。 使通信调用如下方法的查询类: /** * Sends a command to the interpreter. Makes the current thread wait for an answer of the interpreter. * @throws IOException */ private synchronized void send(String command) throws IOException{ this.s48Proxy.write(command); try { System.out.println(“waiting for reply”); this.wait(); } catch (InterruptedException e) { System.out.println(“interruption exception: “+e.getMessage()); } } 和听众: […]

什么是’cpumin.exe’进程在后台运行并占用100%的CPU? 每当我运行Java程序时都会发生这种情况

今天早上我一直在用Java编程,虽然我现在已经停止了,但即使它应该处于空闲状态,我的CPU仍然以100%运行。 任务管理器显示一个名为“cpumin.exe”的进程导致此问题。 我已经将文件追踪到一个名为’javacache’的文件夹中。 有谁能请解释我能做些什么来阻止这个? 每当我杀死进程时,它就会再次启动。 谢谢

使用java时,进程输入流是否有限制?

我正在solaris OS上使用java运行时创建一个进程。 然后我从进程中获取输入流并对输入流进行读取。 我希望(我不太确定这个过程,这是第三方的事情)这个过程流程是巨大的,但它似乎被削减了。 可能是java方面有一个阈值,关于进程在其输出流中可以有多少? 谢谢,阿卜杜勒

Java exec – 交互过程的输出一直持续到进程终止

我在Java中使用交互式进程时遇到问题。 我有线程来读取STDOUT和STDERR以及一个处理进程输入的线程。 但是,在流程终止之前,STDOUT流中没有可用的数据。 然后立即打印整个输出。 DBG | Pipe action-STDERR started DBG | Pipe action-STDIN started DBG | Pipe action-STDOUT started STDIN | Try to put some input. STDIN | I cannot see any output. STDIN | Nevertheless the interaction works. STDIN | It works on background. STDIN | Let’s terminate the process to see the truth. […]

无法使用launch4j重命名进程/图像名称

我正在使用Launch4j重命名我的Java进程以进行唯一标识。 我已在所需的xml文件中将节点customProcName设置为true。 但我仍然在Windows任务管理器中将javaw.exe作为进程/映像名称。 下面是我用来启动应用程序的xml代码。 请建议 true false gui D:\MQLink_Installers_Files\TestLaunch_fat.jar D:\MQLink_Installers_Files\MyMain.exe . normal http://java.com/download false false MyMain false false 1.6.0 preferJre 64/32 1.0.0.0 1.0 MyMain Copyright (c) 2011 Fsp 1.0.0.0 1.0 MyMain Fsp MyMain MyMain.exe 编辑:问题是我手动将true设置为xml文件。 当我从launch4j向导保存并创建一个新的构建时,将覆盖xml文件。 不确定如何从launch4j向导设置customProcName。

如何以编程方式杀死第三个应用程序?

如何在Android中杀死一个应用程序? killPackageProcesses(services.get(i).baseActivity.getPackageName()); 这是killPackageProcesses函数 public void killPackageProcesses(String packagename) { int pid = 0; ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); List pids = am .getRunningAppProcesses(); for (int i = 0; i < pids.size(); i++) { ActivityManager.RunningAppProcessInfo info = pids.get(i); if (info.processName.equalsIgnoreCase(packagename)) { pid = info.pid; } } android.os.Process.killProcess(pid); } 它不起作用。 它如何适用于其他应用程序? 许可是写的。

如何生成具有inheritance权限的进程

有没有办法让流程具有该流程的所有inheritance权限,我已经拥有了。 例如,我有一些过程; Process superUserShell = Runtime.getRuntime().exec(“su”); 我能够获得输出流并执行这样的命令 DataOutputStream outputStream = new DataOutputStream(superUserShell.getOutputStream()); // for example outputStream.writeBytes(“rm -rf /*”); outputStream.flush(); 但是我没有处理执行命令结果的可能性,所以我真的想要将另一个进程生成的进程分离(例如“ superUserShell ”) 有什么想法吗? 当然这不是为了邪恶的目的^ _ ^这只是我想到的第一件事。 实际上我正在为fbgrab的小型包装机工作… p = Runtime.getRuntime().exec(“su”);//lets assume my android os grants super user premissions. this is not the question!!!! DataOutputStream outputStream = new DataOutputStream(p.getOutputStream()); //all i want is a bunch of […]

杀死Java中调用的子进程的问题

在我的程序中,我调用一个Linux进程,从该进程读取输出,处理它然后睡眠直到下一次迭代。 我遇到的问题是我调用的进程并不总是死,即使我做了childProcess.destroy() 。 这是代码: while(true) { Process childProcess = Runtime.getRuntime().exec(“./getData”); InputStream input = childProcess.getInputStream(); BufferedReader inPipe = new BufferedReader(new InputStreamReader(input)); while((lineRead = inPipe.readLine()) != null) { // do stuff } childProcess.destroy(); inPipe.close(); input.close(); } 绝大多数时候,。/ getData运行,优雅地退出,我的程序按原样运行。 但….有时它不会退出,只是坐在那里消耗CPU。 我需要一种杀掉它的方法。 我也尝试在调用它之前添加它,但这不起作用: Process killGetData = Runtime.getRuntime().exec(“pkill -9 getData”); killGetData.destroy(); 我猜也许我会陷入内在的while()循环中。 感激地收到任何想法,想法和小贴士。 提前谢谢了 约翰

是否可以将“tail -f”命令输出到java程序?

根据: unix / linux的Java IO实现“tail -f” Java“tail -f”包装器 我认为它可能但我有以下问题。 String TailCommand = “tail -f /path/PATH.txt| grep (…)”; Runtime r = Runtime.getRuntime(); Process p = r.exec(TailCommand); //handle buffer while (running) { // handle output } 进程p终止。 它与没有“top”或“tail -f”的常量更新的命令一起工作正常。 我想知道我是否错过了什么,有一些缓冲限制或其他什么? 我正在使用eclipse,但我想这应该不会对流程行为产生任何影响。 事实上,也许还有另一种简单的方法来解决我错过的问题。 我使用“tail -f”,因为我必须分析相当胖(一些GB)日志,这些日志不断附加并且不打算打开它并读取整个文件。 我只需要控制附加行。 但是我发现没有合适的尾部实现 提前致谢。