当前位置: 首页 > 面试题库 >

如何在Java程序中将参数传递给Shell脚本

龙德润
2023-03-14
问题内容

我试图运行在运行时调用shell脚本的Java代码。

当我在终端中运行脚本时,我正在将参数传递给脚本

码:

./test.sh argument1

Java代码:

public class scriptrun
    {
        public static void main(String[] args)
            {
            try
                {
                    Process proc = Runtime.getRuntime().exec("./test.sh");
                    System.out.println("Print Test Line.");
                }
                catch (Exception e)
                {
                    System.out.println(e.getMessage());
                    e.printStackTrace();
                }
            }
    }

如何在Java代码中为脚本传递参数?


问题答案:

在Java的最新版本中创建进程的首选方法是使用ProcessBuilder类,这使得此操作非常简单:

ProcessBuilder pb = new ProcessBuilder("./test.sh", "kstc-proc");
// set the working directory here for clarity, as you've used a relative path
pb.directory("foo");
Process proc = pb.start();

但是,如果您确实Runtime.exec出于某种原因想要/需要使用该方法,则可以使用该方法的重载版本,这些版本允许显式指定参数:

Process proc = Runtime.getRuntime().exec(new String[]{"./test.sh", "kstc-proc"});


 类似资料:
  • 问题内容: 我是docker世界的新手。我必须调用一个通过Docker容器获取命令行参数的shell脚本。例如:我的shell脚本如下所示: Dockerfile看起来像这样: 我不确定如何在运行容器时传递参数 问题答案: 使用相同 使用现有的Dockerfile构建映像: 使用参数或其他方式运行映像。

  • 问题内容: 谁能建议我如何将参数传递给线程? 另外,它如何用于匿名类? 问题答案: 你需要将构造函数中的参数传递给Runnable对象: 然后调用它:

  • 我试图使用jython在java中执行python脚本。重要的是,我需要使用jython将命令行参数传递给脚本,例如myscript。py arg1 arg2 arg3。这里有一个类似的问题:将参数传递到Java中的Python脚本 这没有得到完全的回答(所有解决方案都不起作用)。 我的代码现在看起来像这样: 然而,这似乎没有向python脚本传递任何参数。对如何正确地做这件事有什么建议吗?这一定

  • 问题内容: 我有一个Linux bash脚本“ myshell”。我希望它读取两个日期作为参数,例如:。我是Java程序员,但不知道如何编写脚本来完成此任务。 脚本的其余部分如下所示: 问题答案: 您在脚本中使用,例如

  • 问题内容: 我试图将我的数据库对象传递给我的处理程序,而不是具有全局对象。但是我不知道这是否可行,我使用的是Gorilla Mux软件包,我可以看到它把闭包作为第二个参数。 然后定义了我可以使用的参数,理想情况下,我希望拥有这样的第三个参数。 有解决方法吗?还是我需要一个全局数据库对象?我是Go的新手,所以请详细说明可能的答案。 问题答案: 欢迎来到。 可以使用全局变量,特别是数据库对象。 但是,

  • 问题内容: 我想运行在命令行(Linux和Mac)上创建的Java程序。我不想一直输入“ java”和参数,因此我正在考虑创建包装器脚本。使它们无处不在的最佳方法是什么?我也希望能够传递参数。我当时正在考虑使用“ shift”执行此操作(删除第一个参数)。 有没有一种更好的方法可以完全不使用脚本呢?也许制作一个不需要通过“ java”命令调用的可执行文件? 问题答案: 假设您使用的是与Bourne