我有一个程序,当您双击它时会运行。我想做的是:
双击 jar 文件
(只是一个例子,这不是我想做的)
我试过这个:
public class Main{
public static void main(String [] args){
Runtime.getRuntime().exec("/bin/bash sudo SOME_COMMAND_HERE");
}
}
(< code>SOME_COMMAND_HERE只是一个替换)
它没有启动终端。
(我有GUI部分,所以不需要为此编写代码)
那么我该怎么做呢?在过去的一两天里,我一直在寻找堆栈溢出的答案,以及激烈的谷歌搜索。另外,我需要它的原因是因为我想在运行sudo命令时向用户显示一些进度并输入密码。
有人能帮忙吗?提前感谢。
在您的示例中,由于您没有读取它的stdout和stderr流,该进程可能会停滞。从流程文档中:
由于一些原生平台仅为标准输入和输出流提供有限的缓冲区大小,因此未能及时写入进程的输入流或读取进程的输出流可能会导致进程阻塞,甚至死锁。
所以本质上,您只是在问如何从Java执行流程。与用户无关的是,您的程序将显示类似终端的UI。知道了这一点,我们可以重新表述您的问题并找到如下答案
请先参考这个问题, 无法读取opensslv. h:没有这样的文件或目录 基于此,我需要使用AppleScript运行以下三行终端命令, 我尝试了两种方法,我创建了带有.命令和. sh扩展名的文本文件,并添加了上述三行。然后尝试从AppleScript运行它, 但我犯了这个错误, 这可能行得通, 但它在第三行的终端上请求密码,并等待用户响应。AppleScript中显示的密码对话框(当以管理员权限
问题内容: 关于主题,下面的代码 从Ubuntu运行终端。 运行终端后如何在终端中发出命令? 例如:运行终端并运行命令,例如“ ls”等。 问题答案: 您可以在命令行中提供一些选项,以指定执行的内容。 该选项为您提供大致相同的好处,但您可以将命令行拆分为单独的单词。 二者并同时连接program`s标准输入和输出到端子与可选参数运行该程序。因此,用户可以与终端进行正确的交互。 例: 这将打开终端并
问题内容: 我想尝试PyCharm进行鼠尾草数学开发。通常我会运行eclipse来进行鼠尾草开发,但是现在我想与PyCharm一起尝试。 要使用sage环境变量启动eclipse,通常在命令行中执行以下操作: 第一行加载鼠尾草环境变量,其余行启动eclipse。如何为pyCharm做同样的事情?(请注意,我正在使用Mac和Ubuntu进行sage开发;以上命令对两个操作系统均不可知) 链接:Jet
我有一个简单的问题涉及child_proccess。如果从脚本调用child_process,它将在该脚本中运行该命令。如果您导出运行该命令的函数,对于我测试的内容,它会尝试在库终端而不是当前终端中运行该命令。示例:假设您有导出到 b 的脚本 a.js.js在 a 中您有一个名为 hello 的函数,它使用 echo 命令打印“ World”: 当你运行它时,它不会给你发送任何东西。如果用cons
问题内容: 我一直在寻找使用Java运行时运行外部程序的方法。可以正常工作,例如: 如您所愿创建一个新目录。现在,在Mac的bash窗口中,我可以这样写: 在名为testgame的文件夹上运行“ Love”游戏引擎。现在,之所以可行,是因为我将“ love”作为别名来调用love可执行文件。我有一种感觉,这是下面没有理由 不 工作: 而且(对于那些想知道的人)也不是: 毫无疑问,这要么是Java方
问题内容: 我想运行一些命令,直到按Ctrl-C才会退出。是否可以运行一次即可运行所有这些程序,而Ctrl-C会全部退出它们?他们可以共享终端输出。 具体来说,我有罗盘编译器,coffeescript编译器和一个自定义命令,用于监视文件更改,所有命令都在运行以监视文件更改。我不想为每个命令加载一个终端。 问题答案: 该bash脚本适用于N个并行线程。每个参数都是一个命令。 捕获SIGINT时将杀死