问题标签 [runtime.exec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 从另一个 JVM 中启动 JVM - 避免代码重复的坏主意?
我有一个 Java 控制台应用程序,它是从 Windows 中的批处理脚本和 Linux 中的 shell 脚本启动的。在这两种情况下,任何命令行参数(很复杂)都会简单地传递到 java 应用程序中,后者使用 Apache Commons CLI 解释它们。
现在我想允许用户为程序分配额外的内存。最简单的方法可能是为此添加一个额外的参数(例如 -m 1000),但也有缺点。批处理脚本和 shell 脚本现在都需要解释命令行,以便它们可以提取内存参数并将其用作 JVM 的 -Xmx 参数。这实际上意味着在 3 个地方(批处理/shell/java)满足参数解析的全部复杂性。
唯一想到的另一种方法是让脚本调用一个虚拟 Java 应用程序,该应用程序使用现有的解析逻辑来查找新参数,然后使用正确的内存上限(使用 Runtime.执行())。这将解决代码重复问题。
我的问题是——这对任何人来说都是个坏主意吗?也许有些问题我没有考虑。
java - Runtime.getRuntime().exec() 不启动进程
我有一个多线程应用程序,它启动一个外部应用程序来进行数据转换,为应用程序的后续部分做准备。
我有一个问题,当我将线程数设置为高于 6 个并发线程时,Runtime.getRuntime().exec() 无法启动外部应用程序(我也尝试使用 ProcessBuilder 并获得相同的结果)。它不会抛出任何异常,也不会在标准输出流或标准错误流上捕获任何内容。更奇怪的是,在重新启动服务器后,我可以在几分钟内运行至少 8 个并发线程而不会出现问题,但问题会再次出现。
我读过 Linux 的实现使用了 fork() 命令,这可能导致无法分配内存错误,但我没有收到任何此类错误。
我已经编写了另一个测试应用程序来启动 X 个notespad.exe,而 X 大到 100 没有问题。
该应用程序在 VMware 环境中的 Window 2003 标准 x64 服务器上运行。JVM 版本为 1.6.0_11。
我可以更新 JVM 以尝试解决问题,但我想将其作为最后的努力,以防止需要使用新的 JVM 版本测试所有应用程序。
java - 运行时问题
如何使它在 windows 上工作,文件 filename.txt 没有被创建。
显然,预期的输出是应该创建一个“filename.txt”(C:\Documents and Settings\username\filename.txt),内容为“name”。
能够使用以下代码进行管理,即使文件是“filename.txt”不是使用 processBuilder 创建的
或者,使用 ProceessBuilder ,
java - Runtime.getRuntime().exec 问题 win serv 2003 与 win serv 2008
我有一些java代码如下:
它在 win serv 2003 中运行良好,但在 win serv 2008 中运行良好。
任何想法为什么?
java - 如何使用带有 Windows REG 实用程序的 Java Runtime.exec() 来读取/更新/删除 HKEY_LOCAL_MACHINE\...\CurrentVersion\Run 中的条目?
我想使用 Runtime.exec() 更新注册表以HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
使用 WindowsREG
命令实用程序。
需要能够从“运行”键添加/删除/读取条目以允许我的 Swing 应用程序在启动时运行并检查它是否配置为在启动时运行,以便我可以在 GUI 中将该选项标记为选中或未选中. 我使用 JNI 进行了此操作,但该库仅支持 32 位,因此不适用于 64 位。我认为这将是一个更好的方法。甚至不需要以这种方式包含一个库,我认为REG
它不会消失或改变。
有没有人这样做过或知道如何做到这一点?
谢谢!
java - “Runtime.getRuntime().exec()” 性能不好?
我想从我自己的 java 应用程序中执行一个 jar。(不可能将该 jar 导入库并将应用程序作为我自己的“启动器”的实例启动)。要从我自己的 java 应用程序执行一个 jar...我正在使用下一行:
这非常有效。我对此没有任何抱怨。
我的问题是:这是否与在命令行中通过“java -jar myjar.jar”执行该 jar 具有相同的性能?还是更糟??如果更糟......关于我可以以相同的性能做到这一点的任何建议吗?
java - Java 运行时 exec() 行为
我试图通过传递生成 javadocs 所需的命令来Runtime
通过方法的实例以编程方式生成 javadocs。exec()
首先我不熟悉通过命令行创建 javadocs,其次我不熟悉Runtime
. 作为测试,我能够通过exec()
命令执行从 C# 类编译的可执行文件,但无法使用从 C++ 类编译的可执行文件执行此操作,是什么导致了这种行为?exec()
另外,在指向 JDK bin 目录时,我无法通过命令执行 javadoc.exe 文件。如何通过exec()
参数生成 javadocs,甚至可以这样做吗?谢谢。
java - 杀死在 Java 中调用的子进程的问题
在我的程序中,我调用一个 Linux 进程,读取该进程的输出,处理它,然后休眠直到下一次迭代。我遇到的问题是我调用的进程并不总是死掉,即使我执行了childProcess.destroy()
. 这是代码:
绝大多数时候,./getData 运行,优雅地退出并且我的程序正常工作。但是....有时它不会退出,只是坐在那里消耗 CPU。我需要一种杀死它的方法。我也尝试在调用它之前添加它,但这不起作用:
我猜我可能陷入了内部 while() 循环。
任何想法,想法和提示都非常感激。提前谢谢了
约翰
java - 将运行时 exec() OutputStream 打印到控制台
我正在尝试OutputStream
将由Process
发起者exec()
发送到控制台。如何才能做到这一点?
这是一些不完整的代码:
android - 有关 Android 应用中 Runtime.getRuntime().exec() 命令使用的帮助
我正在尝试使用 Runtime.getRuntime.exec() 命令将文件夹从一个位置复制到 sdcard 上的另一个位置。但是好像不行
下面是我试图将内容从 /sdcard/etc/data 复制到 /sdcard/etc/temp/ 的代码片段
尝试 { 进程进程 = Runtime.getRuntime().exec("cp -r /sdcard/etc/data /sdcard/etc/temp"); }catch (IOException e) { e.printStackTrace(); }
我还尝试创建一个软链接作为替代方案。事件不起作用。
尝试 { 进程进程 = Runtime.getRuntime().exec("ln -s /sdcard/etc/data /sdcard/etc/temp/data"); }catch (IOException e) { e.printStackTrace(); }
有人可以帮我解决这个问题。如果不是,我是否以正确的方式使用运行时,请给我一个替代方案。感谢您的帮助!
谢谢,尼克..