首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

传递参数从java程序到bash脚本,用参数调用另一个java程序

在这个问答内容中,我们需要实现以下功能:

  1. 从 Java 程序传递参数到 Bash 脚本。
  2. 在 Bash 脚本中调用另一个 Java 程序。

以下是完善且全面的答案:

  1. 从 Java 程序传递参数到 Bash 脚本:

可以使用 Java 的 Runtime 类或 ProcessBuilder 类来执行 Bash 脚本。在执行 Bash 脚本时,可以通过命令行参数将 Java 程序中的参数传递给 Bash 脚本。例如:

代码语言:java
复制
String[] cmd = {"bash", "my_script.sh", "arg1", "arg2"};
ProcessBuilder pb = new ProcessBuilder(cmd);
Process p = pb.start();

在上面的代码中,my_script.sh 是要执行的 Bash 脚本,arg1arg2 是要传递给脚本的参数。

  1. 在 Bash 脚本中调用另一个 Java 程序:

在 Bash 脚本中,可以使用 java 命令来调用另一个 Java 程序。例如:

代码语言:bash
复制
#!/bin/bash

# 获取传递的参数
arg1=$1
arg2=$2

# 调用另一个 Java 程序
java MyOtherJavaProgram $arg1 $arg2

在上面的代码中,MyOtherJavaProgram 是要调用的 Java 程序,$arg1$arg2 是从 Java 程序传递过来的参数。

推荐的腾讯云相关产品:

  • 腾讯云云服务器:提供可靠的云计算服务,支持扩展和升级。
  • 腾讯云数据库:提供可靠的数据库服务,支持 MySQL、PostgreSQL、MongoDB 等多种数据库类型。
  • 腾讯云容器服务:支持 Kubernetes 容器编排,提供可靠的容器化部署服务。
  • 腾讯云云储存:提供可靠的云存储服务,支持对象存储、块存储等多种存储类型。

产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java程序调用参数的shell脚本返回值

Java程序调用参数的shell脚本返回值 首先来看看linux中shell变量($#,$@,$0,$1,$2)的含义解释 变量说明: $$ Shell本身的PID(ProcessID) $!...最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。...$@ 所有参数列表。如"$@"「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。...Java程序调用参数的shell脚本返回值实现具体代码 package com.javen.kit; import java.io.IOException; import java.io.InputStreamReader...test.sh,有两个参数parm1,parm2,java调用的方法如下: String[] cmd = {"/bin/sh","-c","test.sh parm1 parm2"}; Runtime.getRuntime

3.1K40

Java入门失业》第四章:类和对象(4.4):方法参数传递

4.4方法参数传递        关于这个知识点,我想了很久该不该在这里阐述。因为这个知识点稍微有点晦涩,并且就算不了解也不影响Java编写代码。...实参是调用传递给方法的参数,实参需要在调用之前赋值,即在方法调用之前就已经分配了内存空间,并且方法调用完毕之后内存不会释放。一张图来示意: ?...实际上,在程序语言中还有一种称作“引用调用”的方式,例如C++同时存在值调用和引用调用两种方式。引用调用是把实参内存地址传递给形参。...事实上,在Java语言中,只有值调用一种方式,不管传递的是基本数据类型还是类类型。值调用因为传递的是内存的值,因此不管传递的是基本数据类型还是类类型,都不会改变实参内存中的值。...因为看是否是值调用,根本是要看是否传递的是实参内存的值,Java中类类型的传递,也是传递的实参内存中的值,只不过这个值是一个对象的地址(即引用)。

1.1K10
  • shell编程菜鸟教程_java并发编程实战 pdf

    位置变量: 比如脚本中的参数: $0:脚本自身 $1:脚本的第一个参数 $2:脚本的第二个参数 相当于java中main函数中的args参数,可以获取外部参数。...问题:某个java进程已经启动,jps却显示不了该进程进程号,使用ps -ef|grep java却可以看到?...login进程在启动shell时传递第0个参数指明shell的名字,该参数第一个字符为”-“,指明这是一个login shell。比如对bash而言,启动参数为”-bash”。...非登录式:不需login而由某些程序启动的shell。传递给shell的参数,是没有’-‘前缀的。...还以Bash为例,当以非login方式启动时,它会调用~/.bashrc,随后~/.bashrc中调用/etc/bashrc,最后/etc/bashrc调用所有/etc/profile.d目录下的脚本

    4.6K20

    shell脚本知识记录

    $#:传递参数额个数 类似java中的args.length 5. $$:Shell脚本的进程号,脚本程序通常会用它来生成一个唯一的临时文件。 #!...echo "当前参数参数个数为" $#  #这儿参数的格式是使用空格隔开的哦 echo "当前Shell脚本的进程号为" $$ exit 0 可以看的结果是 yans-MacBook-Pro:Downloads...来读取上一个程序执行下来的脚本码 #! /bin/bash du -s #执行的返回码一般为0 echo du -s的返回码为 $?...如果想传递参数的话 直接在调用后来加上参数列表 空格隔开 (就是Shell的传参一样) 5. 使用local关键字来定义函数体里面的局部变量 7....Shell的另一个强大之处就是可以无缝的和外部的命令,文件,语言结合,去调用组织他们 1.

    54130

    使用DCHQ自动部署和管理Docker Cloud 虚拟Java微服务

    DCHQ(可用在托管版本或on-),通过高级应用程序组合框解决了这些挑战并简化了企业Java应用程序的集装箱化,该框架使用跨图像环境变量绑定扩展Docker Compose,可在请求时调用的可扩展BASH...Mongo - 用于数据库 插件在请求时和配置后配置Web服务器 在应用程序模板中,您会注意Nginx容器正在请求时调用BASH脚本插件来配置容器。这个插件也可以在提供后执行。...这些插件可以通过导航管理>插件来创建。一旦提供BASH脚本,DCHQ代理将在容器内执行该脚本。您可以指定在请求时间和提供后可覆盖的参数。...{{图片名称| 环境变量名称}} - 允许您将图像的环境变量的值输入另一个图像的环境变量中。这里的例是无止境的 - 因为大多数多层应用程序都会有跨图像依赖性。...DCHQ以托管和本地版本的形式提供,解决了所有这些挑战,并通过高级应用程序组合框架简化了企业Java应用程序的集装箱化,该框架有助于实现跨图像环境变量绑定,可在不同生活中调用的可扩展BASH脚本插件应用程序部署的循环阶段以及跨多个主机或区域提供高可用性的应用程序集群

    4.5K40

    Java 应用容器化最佳实践

    如果在我们容器化 Java 应用时没有正确的让信号传递给 JVM, 那么调度程序比如 Kubernetes 在等待容器关闭超时以后就会进行强制关闭, 这很可能导致一些 Java 程序无法正常释放资源,...在很多原始的 Java 项目中通常会存在一个启动运行脚本, 这些脚本可能是自行编写的, 也可能是一些比较老的 Tomcat 启动脚本等; 当我们使用脚本启动并且没有合理的调整 Dockerfile 时就会出现信号无法正确传递的问题...直接运行方式 要解决信号传递这个问题其实很简单, 也有很多方法; 比如常见的直接使用 CMD 或 ENTRYPOINT 指令运行 java 程序: Dockerfile.direct: 直接运行 java..., 测试结果是这个选项在我当前的环境中似乎完全不生效: OpenJDK 8u222 8u191 版本开始, 又增加了另一个开启容器化支持的参数 -XX:+UseContainerSupport,...该参数 OpenJDK 10 反向合并而来; 我尝试使用这个参数来进行测试, 结果仍然是没什么卵: OpenJDK 11+ 11+ 版本开始 -XX:+UseContainerSupport

    2K30

    GraalVM 加持 Java 容器化,速度起飞!

    如果在我们容器化 Java 应用时没有正确的让信号传递给 JVM, 那么调度程序比如 Kubernetes 在等待容器关闭超时以后就会进行强制关闭, 这很可能导致一些 Java 程序无法正常释放资源,...在很多原始的 Java 项目中通常会存在一个启动运行脚本, 这些脚本可能是自行编写的, 也可能是一些比较老的 Tomcat 启动脚本等; 当我们使用脚本启动并且没有合理的调整 Dockerfile 时就会出现信号无法正确传递的问题...直接运行方式 要解决信号传递这个问题其实很简单, 也有很多方法; 比如常见的直接使用 CMD 或 ENTRYPOINT 指令运行 java 程序: Dockerfile.direct: 直接运行 java..., 测试结果是这个选项在我当前的环境中似乎完全不生效: OpenJDK 8u222 8u191 版本开始, 又增加了另一个开启容器化支持的参数 -XX:+UseContainerSupport,...该参数 OpenJDK 10 反向合并而来; 我尝试使用这个参数来进行测试, 结果仍然是没什么卵: OpenJDK 11+ 11+ 版本开始 -XX:+UseContainerSupport

    1.1K40

    Shell编程

    简介 Shell 是一个 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务。 Shell 既是一种命令语言,又是一种程序设计语言。...传递参数 ? 我们可以在执行 Shell 脚本时,向脚本传递参数脚本内获取参数的格式为:$n。.../param.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3 另外,还有几个特殊字符用来处理参数参数处理 说明 $# 传递脚本参数个数 $* 以一个单字符串显示所有向脚本传递参数...continue fi echo $i done 函数使用 1 函数的快速入门 2 传递参数给函数 在Shell中,调用函数时可以向其传递参数。...另外,还有几个特殊字符用来处理参数参数处理 说明 $# 传递脚本参数个数 $* 以一个单字符串显示所有向脚本传递参数 $$ 脚本运行的当前进程ID号 $!

    5K11

    收藏~ 一篇教会你写90%的shell脚本

    获取参数值: $0 : 固定,代表执行的文件名 $1 : 代表传入的第1个参数 $n : 代表传入的第n个参数 $#:参数个数 $*: 以一个单字符串显示所有向脚本传递参数。...假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 “1 2 3”(传递了一个参数),而 “@” 等价于 “1” “2” “3”(传递了三个参数)。...函数定义 [ function ] funname() { action; [return int;] } 参数传递 调用函数: fun_name 2 3 4函数中使用:和shell...如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向 /dev/null: 输入重定向 bash.sh < file : 将脚本的输入重定向file,由file提供参数 输出重定向...bash.sh > file : 将脚本的输出数据重定向file中,覆盖数据 bash.sh >> file : 将脚本的输出数据重定向file中,追加数据 command >> file 2>&

    2.3K10

    Shell函数定义

    语法 # 函数的定义 [ function ] funname () { 命令 [return 返回值] } # 调用函数 funname 传递参数1 传递参数2 ....../bin/bash demo() { echo "执行了函数" } # 调用函数 demo 运行效果 示例:无参有返回值函数 fun2.sh文件脚本代码 #!..." # 获取函数返回值 运行效果 示例:有参函数 介绍 在Shell中,调用函数时可以向其传递参数。...在函数体内部,通过 n 的形式来获取参数的值,例如,1 表示第一个参数, 其他参数介绍 参数处理 说明 $# 传递脚本或函数的参数个数 $* 以一个单字符串显示所有向脚本传递参数 $$ 脚本运行的当前进程.../bin/bash demo(){ echo "函数中打印当前进程ID:$$" } echo "当前脚本文件(Shell程序)打印当前进程ID:$$" # 调用函数 demo 运行效果

    3.6K30

    一篇教会你写90%的shell脚本

    获取参数值: $0 : 固定,代表执行的文件名 $1 : 代表传入的第1个参数 $n : 代表传入的第n个参数 \$#:参数个数 \$*: 以一个单字符串显示所有向脚本传递参数。...如"$*"「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数 \$@:与$*相同,但是使用时加引号,并在引号中返回每个参数。 \$\$:脚本运行的当前进程号 \$!...假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。...函数定义[ function ] funname() { action; [return int;] } 参数传递 调用函数: fun_name 2 3 4 函数中使用:和shell取用函数相同 $n...提供参数 **输出重定向** 1. bash.sh > file : 将脚本的输出数据重定向file中,覆盖数据 2. bash.sh >> file : 将脚本的输出数据重定向file中,追加数据

    1.7K01

    shell-编写shell脚本所需的基础语法

    获取参数值: $0 : 固定,代表执行的文件名 $1 : 代表传入的第1个参数 $n : 代表传入的第n个参数 $#:参数个数 $*: 以一个单字符串显示所有向脚本传递参数。...假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 “1 2 3”(传递了一个参数),而 “@” 等价于 “1” “2” “3”(传递了三个参数)。...函数定义 [ function ] funname() { action; [return int;] } 参数传递 调用函数: fun_name 2 3 4 函数中使用:和shell...如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向 /dev/null: 输入重定向 bash.sh < file : 将脚本的输入重定向file,由file提供参数 输出重定向...bash.sh > file : 将脚本的输出数据重定向file中,覆盖数据 bash.sh >> file : 将脚本的输出数据重定向file中,追加数据 command >> file 2

    89320

    使用JDB调试Java程序

    图片至此,陷入迷惘中……解决思路: SNAP软件是使用Java开发,GPT工具是一个BASH脚本(类UNIX系统下),这个脚本调用JAVA实现的功能。那如何进行代码调试找到报错原因呢?...第一:我们需要弄清楚BASH是如何调用Java的;由于GPT实质是一个BASH脚本,我们可以通过调试BASH的技巧,找到GPT这个脚本到底干了什么,如何调用Java。...通过bash -x参数可以实现将BASH脚本的运行过程进行输出,在输出的信息中,我们可以定位Java调用代码,如下图。...可以使用Java JDK自带的JDB工具在命令行中直接对Java程序进行调试,JDB的使用和C++ GDB以及Python 的PDG调试类似。...图片这里涉及很多JDB命令,我们进入JDB以后,可以通过help命令查询这些命令是干什么的,不用刻意进行记忆。基本上每个命令的名字大致给出了其作用。图片

    31530

    使用JDB调试Java程序

    至此,陷入迷惘中…… 解决思路: SNAP软件是使用Java开发,GPT工具是一个BASH脚本(类UNIX系统下),这个脚本调用JAVA实现的功能。那如何进行代码调试找到报错原因呢?...第一:我们需要弄清楚BASH是如何调用Java的; 由于GPT实质是一个BASH脚本,我们可以通过调试BASH的技巧,找到GPT这个脚本到底干了什么,如何调用Java。...通过bash -x参数可以实现将BASH脚本的运行过程进行输出,在输出的信息中,我们可以定位Java调用代码,如下图。...可以使用Java JDK自带的JDB工具在命令行中直接对Java程序进行调试,JDB的使用和C++ GDB以及Python 的PDG调试类似。...这里涉及很多JDB命令,我们进入JDB以后,可以通过help命令查询这些命令是干什么的,不用刻意进行记忆。基本上每个命令的名字大致给出了其作用。

    19110

    01 . Shell详细入门介绍及简单应用

    Shell简介 Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 解释处理Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出显示屏幕给用户...命令基本格式 shell命令可以分为两大类 一类是内置命令,即系统自带的命令,如ls,这是显示文件夹下文件的命令; 另一类是外置命令,如vi,是调用vi编辑器的命令,而vi编辑器是一个软件,这类命令由独立的程序实现的命令...如果X在执行过程中产生数据,可以 “X > file”和”X >> file”将结果输入文件。”...如,ll和grep结合来查找当前目录是否有这个文件: 什么是Shell脚本 脚本就是shell命令组成的文件,这些命令都是可执行程序的名字,脚本不用编译即可通过解释器解释运行。  ...它是一种解释型语言,我们可以shell脚本操存执行动作,脚本判定命令的执行条件,脚本来实现动作的批量执行 Shell简单使用 脚本开头 为了便于脚本的使用者可以快捷的了解脚本的用途与其使用的解释器

    79960

    Shell中傻傻分不清楚的TOP3

    Shell的种类 shell程序有sh,bash,zsh等分类,我网上找到一张图可以看出shell程序的发展史。 ?...环境变量 比如我们经常配置的JAVA_HOME就属于环境变量,这些变量是所有Shell程序运行时都可以使用的变量。关于环境变量的操作命令举例如下: ? ?...—>~/.bashrc 当调用一个non-nteractive模式的shell进程时,通常是执行脚本时,此时配置项是环境变量中读取和执行的,也就是env命令输出的配置项。...另外,在开启一个shell进程中,有一些参数的值也会影响配置文件的加载。如--rcfile ,--norc等。这些参数的含义值可以使用man bash进一步了解。...如centos7.2 中 ~/.bash_profile文件中实际调用了 ~/.bashrc文件。 ? 按照模式和参数设置启动的shell程序的配置文件加载流程图如下: ?

    72330

    Linux入门精通(十二)——shell编程

    $0是一个比较特殊的位置参数,用于表示脚本自己的文件名。 $0:脚本程序的名字。...1,2...9:传递脚本的某个参数,1 代表第1个参数, 例子和预定义变量一起; 3.3 预定义变量: 预定义变量是在Shell一开始时就定义了的变量,由符号$和另一个符号组成的,只能使用,不能修改...$#:传递脚本参数的数量; $*:以"参数1参数2… "形式保存所有参数; $@:以"参数1" “参数2” …形式保存所有参数; $?...,Shell提 供了用来控制程序和执行流程的命令,包括条件分支和循环结构,用户可以这些命令创建复 杂的程序。 ​...注意: 调用函数时传递参数,在函数体中可以通过位置变量1 2 ...使用; [root@VM-24-17-centos shellstudy]# vim func1.sh #!

    4.8K30
    领券