【java-查找进程是否在Windows中仍然存在】教程文章相关的互联网学习教程文章

从Java进程访问子进程控制终端【代码】

我有一个长期运行的Java服务器应用程序,它启动一个子进程来执行特定任务(在这种情况下,使用7z命令行实用程序提取7zip文件的内容,但这个特定的细节在这里不应该相关). >服务器应用程序在Ubuntu 14下使用Java 8运行.>子流程正在通过Java ProcessBuilder API启动.>子进程正在访问的文件可能受密码保护.>如果文件受密码保护且没有提供密码作为命令行参数,则7z程序将尝试向终端显示提示输入密码的消息,然后从终端读取密码.>此时,子流程挂...

Java 进程和线程的创建

进程和线程进程是系统进行资源分配和调度的基本单位,一个进程至少有一个线程; 线程是CPU分配的最小单位,真正占用CPU的是线程; main 函数在启动时,会在JVM中启动一个进程,而mian函数所在的线程就是这个进程中的一个线程,也称为主线程。Runnable 接口创建线程 实现 Runnable 接口的 run 方法 Runnable runnable = () -> System.out.println("我是一个子线程"); 与 Thread 相比,因为 Java 不支持多继承,所以 Runnable 的优势...

Java Process.Destroy()不会终止所有进程

我有一个Java进程,使用Runtime.getRuntime().exec(“myBin”)启动程序 这个“myBin”可能会多次分叉完成它的工作. 我有一个读者线程来读取exec()返回的Process对象的InputStream和ErrorStream中的“myBin”及其子节点的所有输出 我的问题是:如果花费太多时间完成工作,我需要终止进程并等待读者线程完成.(如果读取了EOF,读者线程将完成) 现在我发现,即使我使用Process.Destroy(),我也只能杀死自己及其所有孩子的“myBin”.因此,在超...

java – 找到一个杀死我的进程的神秘过程

假设我有一些进程 – 在这种情况下是由ant发起的Java进程.我发现随机的东西正在发送这个Java进程SIGTERM.它可能是将信号发送给自身的过程,也可能是其他信号. 我已经消除了大多数明显的原因(oom杀手,父进程杀死孩子等),但我真的想知道谁发送这个进程SIGTERM.有没有办法在操作系统或流程级别跟踪此行为?解决方法:你可以通过JNI在你的java程序中安装一个信号处理程序,参见interface java with C timer library using JNI作为一个例子...

如何用Java解析后台进程的输出?【代码】

在我的Java程序中,我想启动一个PostgreSQL服务器.对于此任务,我使用此代码:ProcessBuilder pb = new ProcessBuilder(pgHome + "/bin/pg_ctl", "start");Map<String, String> env = pb.environment(); env.put("PGDATA", pgDataDir);Process p = pb.start();InputStream is = p.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String line; boolean started = false;while (!started ...

java – 我可以拦截Spring @Autowired进程来进行验证检查吗?【代码】

有时候我们会在代码中出错,并且@Autowired一个原型范围的bean进入单例范围的bean.这当然是错误的,因为单身人士可能会使用这种依赖,就像它也是一个单身人士一样. 是否有任何方法可以拦截自动装配/ DI过程来检测并引发错误?这将用于开发时的检测.解决方法:实现这一目标的最佳方法是通过单元测试.例如:@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = MyAppConfig.class, loader = AnnotationConfigConte...

linux – 仅杀死特定Java jar的进程(实例)【代码】

我需要创建自动脚本,它会杀死特定Java JAR的运行进程. 我像这样手动完成:jps -v6753 Jps 4573 myJarToKill.jar 4574 notMyJarToKill.jar 4576 myJarToKill.jar我根据JAR名称选择特定进程,例如myJarToKill.jar并运行以杀死它们.kill 4573 4576 是否有可能通过这样的grep或sth获得这些进程的数量?通过它来杀死命令?解决方法:要使用的命令是grep,awk和xargs unix命令的组合:jps -v | grep "<your file name>" | grep -v "<if you...

java – 进程无法访问该文件,因为它正被另一个进程使用【代码】

我有一段代码监视目录以添加文件.每当将新文件添加到目录时,将挑选该文件的内容并在kafka上发布,然后删除该文件. 这在我发出单个请求时有效,但是一旦我将代码从jMeter请求5或10个用户请求,内容就会在kafka上成功发布,但代码无法删除该文件.我收到一个FileSystemException,其中包含一个消息,该进程无法访问该文件,因为它正由另一个进程使用. 我想有一些我无法看到的并发问题.public void monitor() throws IOException, Interrupted...

java – 进程代数的解析器【代码】

我想为进程代数创建一个解析器.进程代数具有以下语法:System=P:[s,l]|(P:[s,l']|P:[s,l])\{a,b}我如何检查字符串语句是否遵循此语法???一些伪代码会非常有用.解决方法:在一般情况下,您不能使用正则表达式来完成此任务,因为您具有嵌套构造(括号表达式).你至少需要所谓的“push-down automaton”的力量. 要解决这个问题,您需要一个识别过程语言语法的“parser”. 你有语言的语法规范吗?您可以使用像ANTLR这样的工具来表达语法. 研究...

java:有哪些库来管理/监控进程?

我正在帮助开发一个需要运行多个进程的应用程序.我需要能够启动和停止进程以及监视它们. JPPF提供了管理和监视JPPF作业以及运行这些作业的节点/服务器的能力,但这些都是跨JVM的.我正在尝试权衡其他可能不是JVM的管理/监控流程的解决方案.如果它可以在Java中使用,那么我正在寻找的库将是更好的.解决方法:我不认为这解决了运行不是JVM的进程的问题,但是您可能有兴趣将Akka库作为JPPF的替代品:http://akka.io/.它主要是为scala构建的...

java进程和线程

进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以有多个线程。比如在Windows系统中,一个运行的xx.exe就是一个进程。 Java程序的进程里有几个线程:主线程, 垃圾回收线程(后台线程) 线程是指进程中的一个执行任务(控制单元),一个进程中可以运行多个线程,多个线程可共享数据。 多进程:操作系统中同时运行的多个程序; 多线程:在同一个进程中同时运行的多个任务; 一个进程至少有一个线程,为了...

从Java中的单独进程捕获键击

我希望这发生: >启动我的java程序>我的java程序启动notepad.exe>如果我在记事本中键入一个字母,我的java程序应该做出反应并打印出来 简而言之:是否可以为另一个进程创建一个关键事件监听器? java程序没有焦点. 如果不可能,我希望能够在我的Java swing窗口和记事本过程之间改变焦点.例如: A)我的java程序有焦点(小摆动窗口),我输入字母“A”B)记事本快速获得焦点并在那里输入字母A(例如使用Robot类)C)我的java程序再次获得关注 ...

java – 如何让连接线程保持活动状态? (我需要使用守护进程吗?)【代码】

我的Android应用程序使用线程从通过USB连接的PC侦听套接字连接.在PC打开连接(响应某些用户驱动的事件)后的某个时刻,我想通过它发送一些数据.public void onCreate(Bundle savedInstanceState) {// SNIP: stuff and nonsenseconnection = new Thread(new ServerThread());connection.start(); }public boolean onTouchEvent(MotionEvent event) {// SNIP: decide what to do; create string 'coordString'Message coordMsg = coordH...

为什么OS进程看起来比java中的线程更快

我开发了一个多线程java应用程序,它使用线程来处理一批工作.我有一个主线程,将工作分配给不同的线程.一切正常. 现在我已经更改了应用程序,允许它在多个java进程中运行,每个进程都像以前一样进行多线程处理.例如,我使用8个线程来处理一个java进程中的8个作业,现在我可以有2个Java进程,每个进程仍然有4个线程来处理8个作业. 应用程序的建模如下:调度程序将获取需要完成的工作,然后将它们分派给线程池.线程之间没有同步或通信. 我注意...

如何使用Java Native Access为除Java.exe之外的进程设置进程关联?【代码】

尽管手动操作相当容易,但我尝试在初始创建时间后为各种VM自动设置Windows 7中的cpu亲和性.该项目是Java,我试图避免直接包含C代码,所以我一直在使用Java Native Access,它掩盖了像winapi这样的东西.我是图书馆的新手,虽然通过快速谷歌搜索可以找到一些基本版本,但它在教程或示例中有点缺乏. 使用以下代码,我可以设置主Java进程的亲缘关系(本地ffffffffffffffff),但其他进程仍然完全不受影响,即使我有权使用任务管理器手动设置关联.我...