通过java在linuxterminal上执行命令【JAVA教程】

!
也想出现在这里? 联系我们
信息

通过java在linuxterminal上执行命令,第1张

概述通过java在linuxterminal上执行命令

我创build了一个独立的应用程序,我希望当用户点击运行button时,terminal应该打开,并在terminal上执行一个特定的命令。 我能够使用下面的代码成功地打开terminal…

Process process = null; try { process = new ProcessBuilder(\”xterm\”).start(); } catch (IOException ex) { System.err.println(ex); }

上面的代码打开一个terminal窗口,但我不能执行任何命令。 谁能告诉我该怎么做?

在cmd中使用dir获取没有path的文件夹名称

Perl:在新cmd.exe中发出命令

如何用sftp get命令重命名文件

linux中的factor命令后面的algorithm是什么?

为什么du和Perl的文件大小不一样?

假设您正在尝试使用gedit命令,那么您需要提供gedit的全限定路径(例如/ usr / bin / gedit)。 同样,对于所有其他命令,请指定完整路径。

尝试

new ProcessBuilder(\”xterm\”,\”-e\”,\”/full/path/to/your/program\”).start()

在linux中执行任何命令,就像在终端中输入的内容一样:

import java.io.BufferedReader; import java.io.IOException; import java.io.inputStreamReader; public class CommandExecutor { public static String execute(String command){ StringBuilder sb = new StringBuilder(); String[] commands = new String[]{\”/bin/sh\”,\”-c\”,command}; try { Process proc = new ProcessBuilder(commands).start(); BufferedReader stdinput = new BufferedReader(new inputStreamReader(proc.getinputStream())); BufferedReader stdError = new BufferedReader(new inputStreamReader(proc.getErrorStream())); String s = null; while ((s = stdinput.readline()) != null) { sb.append(s); sb.append(\”n\”); } while ((s = stdError.readline()) != null) { sb.append(s); sb.append(\”n\”); } } catch (IOException e) { e.printstacktrace(); } return sb.toString(); } }

用法:

CommandExecutor.execute(\”ps ax | grep postgres\”);

或者像以下一样复杂:

CommandExecutor.execute(\”echo \’hello world\’ | openssl rsautl -encrypt -inkey public.pem -pubin | openssl enc -base64\”); String command = \”ssh user@database-dev \’pg_dump -U postgres -w -h localhost db1 –schema-only\’\”; CommandExecutor.execute(command);

总结

以上是内存溢出为你收集整理的通过java在linuxterminal上执行命令全部内容,希望文章能够帮你解决通过java在linuxterminal上执行命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞128 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容