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

如何使用.sh脚本(Openj9)运行具有不同java路径的jar

使用.sh脚本运行具有不同java路径的jar文件可以通过以下步骤实现:

  1. 创建一个新的文本文件,命名为run.sh
  2. 打开run.sh文件,使用文本编辑器输入以下内容:
代码语言:txt
复制
#!/bin/bash

# 设置不同的java路径
java_path_1="/path/to/java1"
java_path_2="/path/to/java2"

# 设置要运行的jar文件路径
jar_file="/path/to/your/jar/file.jar"

# 使用不同的java路径运行jar文件
if [ -f "$java_path_1/bin/java" ]; then
    $java_path_1/bin/java -jar $jar_file
elif [ -f "$java_path_2/bin/java" ]; then
    $java_path_2/bin/java -jar $jar_file
else
    echo "无法找到有效的java路径"
fi
  1. 替换/path/to/java1/path/to/java2为实际的Java安装路径。可以根据需要设置多个不同的Java路径。
  2. 替换/path/to/your/jar/file.jar为实际的jar文件路径。
  3. 保存并关闭run.sh文件。
  4. 在终端中导航到包含run.sh文件的目录。
  5. 运行以下命令以授予脚本执行权限:
代码语言:txt
复制
chmod +x run.sh
  1. 运行脚本:
代码语言:txt
复制
./run.sh

脚本将根据可用的Java路径运行jar文件。如果找不到有效的Java路径,则会显示相应的错误消息。

请注意,这只是一个示例脚本,可以根据实际需求进行修改和扩展。

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

相关·内容

Java 应用容器化最佳实践

如果只需要运行 Java 程序比如一个 jar 包, 那么 JRE 足以; 但是如果期望在运行时捕获一些信息进行调试, 那么应该选择 JDK....目前市面上也有很多 JVM 实现: Hotspot OpenJ9 TaobaoVM LiquidVM Azul Zing 这些 JVM 实现可能具有不同特性和性能, 比如 Hotspot 是最常用...我个人比较喜欢 OpenJ9, 原因是它文档写很不错, 只要细心看可以读到很多不错细节等; 如果要使用 OpenJ9 镜像, 推荐直接使用 ibm-semeru-runtimes[2] 预编译镜像...在很多原始 Java 项目中通常会存在一个启动运行脚本, 这些脚本可能是自行编写, 也可能是一些比较老 Tomcat 启动脚本等; 当我们使用脚本启动并且没有合理调整 Dockerfile 时就会出现信号无法正确传递问题...众所周知, Java 是有虚拟机, Java 代码被编译成 Class 文件然后在 JVM 中运行; JVM 默认会根据操作系统环境来自动设置堆内存(HeapSize), 而容器化 Java 应用面临挑战其一就是如何

2.1K30

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

如果只需要运行 Java 程序比如一个 jar 包, 那么 JRE 足以; 但是如果期望在运行时捕获一些信息进行调试, 那么应该选择 JDK. ...目前市面上也有很多 JVM 实现: Hotspot OpenJ9 TaobaoVM LiquidVM Azul Zing 这些 JVM 实现可能具有不同特性和性能, 比如 Hotspot 是最常用...我个人比较喜欢 OpenJ9, 原因是它文档写很不错, 只要细心看可以读到很多不错细节等; 如果要使用 OpenJ9 镜像, 推荐直接使用 ibm-semeru-runtimes[2] 预编译镜像...在很多原始 Java 项目中通常会存在一个启动运行脚本, 这些脚本可能是自行编写, 也可能是一些比较老 Tomcat 启动脚本等; 当我们使用脚本启动并且没有合理调整 Dockerfile 时就会出现信号无法正确传递问题...众所周知, Java 是有虚拟机, Java 代码被编译成 Class 文件然后在 JVM 中运行; JVM 默认会根据操作系统环境来自动设置堆内存(HeapSize), 而容器化 Java 应用面临挑战其一就是如何

1.1K40
  • 微服务中使用 OpenJ9 JVM 内存占用降60%(相对HotSpot)

    自己动手简单测试 创建一个 Spring Boot Web 应用并打成jar包,分别使用 HotSpot、OpenJ9 虚拟机 Open JDK8 结合Docker来做测试。...java $JAVA_OPTS -Xshareclasses -Xquickstart -jar /app.jar 基于HotSpotDockerfile FROM openjdk:8u181-jre-slim-stretch...COPY target/app.jar /app.jar ENTRYPOINT java $JAVA_OPTS -jar /app.jar 启动容器后,docker stats openj9 hotspot...OpenJ9 是 50.89M;HotSpot 是235.7M,差异非常大。 下面是我们测试环境中一个普通应用(使用Docker运行)测试结果。...OpenJ9 以前更多是支持IBM企业级商业产品,大家了解相对较少,连日用命令行工具暂时都只提供了jps、jstack,不过可以使用像阿里 arthas这类Java应用诊断工具,效果也是一样

    4.9K30

    谁说Java不适合写微服务?来看看这款内存占用降低4倍jvm虚拟机openJ9

    Eclipse OpenJ9 是一个 Java 虚拟机(JVM),它是运行 Java 应用程序引擎,而 OpenJDK 是一个完整开发工具包,包含其他组件,如Java 类库以及 JVM。...默认情况下,OpenJDK 使用名为 Hotspot JVM。简单地说,OpenJ9 是一个 JVM 替代方案,可将其作为 OpenJDK 二进制文件一部分。...而OpenJ9其自身是基于IBM开源OMR项目所构建,OMR项目由一个高度集成开放源码C和c++组件,可用于构建大量语言,运行时支持许多不同硬件和操作系统平台。...2、Java编译慢,spring启动慢。spring作为Java必不可少框架,大量运用了反射技术,牺牲了运行效率,我们知道反射性能是非常差,但是框架为了开发方便不得不做出这方面的牺牲。...我自己也进行了一个简单测试,针对开源项目若依,我将之打成jar包,然后用hotspot和openj9分别对内存占用进行对比(都是openjdk8u312) hotspot: 启动时间:9.82s

    2.6K20

    公司用了 6 年Spring Boot 部署方案!打包 + Shell 脚本详解,稳一批!

    打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用shenniu_publish.sh启动程序 profiles指定不同环境配置 通常一套程序分为了很多个部署环境:开发...zip包,如图: 分享shenniu_publish.sh程序启动工具 上面步骤完成了zip格式发布包,我们再分享下启动程序shell脚本,该脚本具有的功能如: 解压zip+启动jar包 启动jar...包 停止对应jar运行 重启jar程序 目前该shell中封装了两种启动jar命令方式: java -cp java -jar 如图命令格式: 来看全部shell代码: #!.../shenniu_publish.sh脚本时候,提示了错误信息;是由于我是在windows上编辑这个脚本,其空格等和linux上不一样,所以运行会有问题,要解决可以使用vim命令在linux把该文件转成.../shenniu_publish.sh,此时有如下提示: 此刻我们文件是解压状态,因此只需要start命令启动程序即可: 到这里shenniu_publish.sh脚本使用就完成了,只要脚本没有提示错误

    76220

    公司用了6年 SpringBoot 项目部署方案,稳得一批!

    打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用shenniu_publish.sh启动程序 profiles指定不同环境配置 通常一套程序分为了很多个部署环境:开发...上勾选切换不同环境来打zip包,如图: 分享shenniu_publish.sh程序启动工具 上面步骤完成了zip格式发布包,我们再分享下启动程序shell脚本,该脚本具有的功能如: 解压zip+启动...jar包 启动jar包 停止对应jar运行 重启jar程序 目前该shell中封装了两种启动jar命令方式: java -cp java -jar 如图命令格式: 来看全部shell代码: #!.../shenniu_publish.sh脚本时候,提示了错误信息;是由于我是在windows上编辑这个脚本,其空格等和linux上不一样,所以运行会有问题,要解决可以使用vim命令在linux把该文件转成.../shenniu_publish.sh,此时有如下提示: 此刻我们文件是解压状态,因此只需要start命令启动程序即可: 到这里shenniu_publish.sh脚本使用就完成了,只要脚本没有提示错误

    22910

    我们公司使用了 6 年Spring Boot 项目部署方案!打包 + Shell 脚本部署详解,稳一批!

    打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用shenniu_publish.sh启动程序 profiles指定不同环境配置 通常一套程序分为了很多个部署环境:开发...zip包,如图: img 分享shenniu_publish.sh程序启动工具 上面步骤完成了zip格式发布包,我们再分享下启动程序shell脚本,该脚本具有的功能如: 解压zip+启动jar包...启动jar包 停止对应jar运行 重启jar程序 目前该shell中封装了两种启动jar命令方式: java -cp java -jar 如图命令格式: img 来看全部shell代码: #!.../shenniu_publish.sh脚本时候,提示了错误信息;是由于我是在windows上编辑这个脚本,其空格等和linux上不一样,所以运行会有问题,要解决可以使用vim命令在linux把该文件转成.../shenniu_publish.sh,此时有如下提示: img 此刻我们文件是解压状态,因此只需要start命令启动程序即可: img 到这里shenniu_publish.sh脚本使用就完成了,

    69620

    Spring Boot 项目打包 + Shell 脚本部署实践,太有用了!

    shell 程序启动工具,希望能便利工作; profiles指定不同环境配置 maven-assembly-plugin打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用...zip包,如图: img 分享shenniu_publish.sh程序启动工具 上面步骤完成了zip格式发布包,我们再分享下启动程序shell脚本,该脚本具有的功能如: 解压zip+启动jar包...启动jar包 停止对应jar运行 重启jar程序 目前该shell中封装了两种启动jar命令方式: java -cp java -jar 如图命令格式: img 来看全部shell代码: #!.../shenniu_publish.sh脚本时候,提示了错误信息;是由于我是在windows上编辑这个脚本,其空格等和linux上不一样,所以运行会有问题,要解决可以使用vim命令在linux把该文件转成.../shenniu_publish.sh,此时有如下提示: img 此刻我们文件是解压状态,因此只需要start命令启动程序即可: img 到这里shenniu_publish.sh脚本使用就完成了,

    1K20

    我们公司使用了 6 年Spring Boot 项目部署方案!打包 + Shell 脚本部署详解,稳一批!

    程序启动工具 linux上使用shenniu_publish.sh启动程序 ---- 本篇和大家分享是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作...; profiles指定不同环境配置 maven-assembly-plugin打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用shenniu_publish.sh...,该脚本具有的功能如: 解压zip+启动jar包 启动jar包 停止对应jar运行 重启jar程序 目前该shell中封装了两种启动jar命令方式: java -cp java -jar 如图命令格式.../shenniu_publish.sh脚本时候,提示了错误信息;是由于我是在windows上编辑这个脚本,其空格等和linux上不一样,所以运行会有问题,要解决可以使用vim命令在linux把该文件转成.../shenniu_publish.sh,此时有如下提示: 此刻我们文件是解压状态,因此只需要start命令启动程序即可: 到这里shenniu_publish.sh脚本使用就完成了,只要脚本没有提示错误

    1K20

    nohup java -jar 启动java项目

    示例:使用nohup启动Java应用 假设我们有一个名为MyApp.jarJava应用程序,我们希望在后台运行它,即使用户注销或关闭终端,应用也能持续运行。...使用nohup启动Java项目的步骤 准备启动脚本 在部署Java项目后,创建一个启动脚本可以简化启动过程,并允许更灵活地管理Java应用。以下是一个简单启动脚本示例: #!...配置环境变量 在启动脚本中或在系统环境变量中配置必要环境变量,如JAVA_HOME和应用依赖路径。.../start-app.sh 确保start-app.sh脚本文件具有执行权限,可以使用chmod命令来设置: chmod +x start-app.sh 监控和管理运行Java应用 监控和管理Java...启动脚本start-app.sh #!

    1.1K11

    实现一个启动多个jar或多个服务脚本

    接着我又准备尝试使用他们所说一些自启动脚本,但是发现文章所写,多少会有点错误,就是启动时候,要进行权限修改,同时在启动自启动脚本时,需要对需要启动脚本位置使用绝对路径,而不是相对路径,因为如果使用相对路径就会报一个错误...: Error: Unable to access jarfile 运行jar包报错 在网上查找资料,你会发现出现这个问题原因只有两个 一个是写jar路径一定需要是绝对路径 二就是你安装JDK...修改成绝对路径之后,问题还是没有得到解决。如果使用rc.local脚本,我发现网上都是教你如何启动,但是没有教如何关闭、重启。...当然这个脚本有一个问题就是jar位置应该写成绝对路径,否则的话,也会出现上面启动jar包启动不起来错误。...我使用java /etc/profile 但是,我在脚本中加入了这个刷新profile命令,但是依然,没有实现自启动。

    4.4K10

    Linode Cloud中大数据:使用Apache Storm进行流数据处理

    Storm是一个很好解决方案一些用例: Twitter数据分析(例如,趋势预测或情绪分析) 股市分析 分析服务器日志 物联网(IoT)传感器数据处理 本指南介绍了如何使用一组shell脚本在Linode...注意本节中显示选项由linode_api.py脚本生成,与使用Linode CLI工具显示选项略有不同。请勿使用Linode CLI工具配置Manager节点。 完成更改后,保存并关闭编辑器。...虽然群集可以包含不同计划节点,但建议对所有节点使用相同计划。建议避免使用非常大集群。对于大多数用例,具有3-9个节点集群就足够了。11-19节点将被视为“大”。....| 120GB(参见所有计划Linode计划)之一,并且count是该计划监督节点数。虽然群集可以具有不同大小管理程序节点,但建议对所有节点使用相同计划。...将拓扑以及它们所依赖所有第三方类打包到单个JARJava Archive)文件中。 如果部署了多个群集,请选择目标Storm群集以运行拓扑。获取目标集群客户机节点公共IP地址。

    1.4K20

    写个简单项目自动部署脚本

    ,我们可以模仿jenkins工作流程并且做一些简化: 从git拉取项目代码到服务器 使用maven命令进行编译打包,打成可执行jar 使用命令或者其他工具启动java服务(java -jar,docker...二、编写部署脚本 前边有介绍到通过脚本来部署应用程序,那么就需要目标服务器拥有执行相关拉取代码、编译、构建能力,比如最基本java运行环境、maven工具、git命令等,如果是借助docker启动服务...) 通过nohup java -jar命令后台运行服务,启动成功后打印启动成功日志 执行start.sh脚本打包部署: sh start.sh dev 通过脚本输入日志可以看到服务已经打包部署成功了:...文件夹拷贝可执行jar到项目工作目录 使用docker命令构建java服务镜像,并定义传入三个入参 停止老docker中java服务容器,并移除 找到老java服务镜像,并移除 启动新java服务容器...综上所述,使用shell脚本来替换jenkins打包部署具有一定优势,但也需要考虑到一些潜在缺点,并根据具体情况来权衡选择。

    30310

    静态 Java 现状:为提升启动速度、减少空间占用而编译本地可执行文件

    目前,除了参与 CRiU(用户空间检查点 / 恢复)(包括 OpenJDK CRaC 项目和 OpenJ9 CRiU 项目),为 OpenJ9 JVM、Java Lambdas 做贡献,将方法句柄引入...我日常工作是开发 Hotspot JVM(同时也是 OpenJ9 JVM 项目负责人)和 qbicc 项目:一个实验性 Java 程序静态编译器,可以作为尝试不同静态 Java 方法游乐场,帮助探索整个设计空间...一个比较好选择是,从 GraalVM 跟踪代理入手,创建支持在运行使用这些动态特性所需配置文件。静态 Java 要求之一是限制动态特性,需要在构建时明确选择。...为了真正推动主流采用,Java 需要意识到当前正在发生阶段性变化(构建时与运行时,检查点与恢复),为开发者提供工具,让他们可以使用这门语言表达自己意思。...有几个项目与 Leyden 项目的问题空间存在重叠,比如 CRaC 项目,特别是关于“如何暴露 Java 编程模型不同阶段”问题。

    52230

    Assembly 打包和部署 Spring Boot

    因为我们如果直接构建一个 Spring Boot FatJar 交由运维人员部署的话,整个配置文件都被隐藏到 jar 中,想要针对不同环境修改配置文件就变成了一件很困难事情。...如果存在环境不确定,或者需要启动脚本启动项目的时候,这种直接通过 jar 方式后续会需要处理很多工作。...使用Assembly打包和部署Spring Boot工程 编写服务启动/停止脚本 首先在 assembly 目录下创建一个 bin 文件夹,然后在该文件夹下创建一个 start.sh 文件,这个是 linux..." 然后创建一个 stop.sh 文件,这个是 linux 环境下停止脚本,具体内容如下。...每次发布版本如果都要上传这个整个 jar 包,既浪费带宽也浪费时间。 下面介绍如何将项目的外部依赖跟自己代码包分开打包,这样当项目修改后,只需要上传覆盖修改后包即可。

    2K00

    EMR入门学习之Hue上创建工作流(十一)

    前言 本文将通过一个简单,并且具有典型代表例子,描述如何使用EMR产品中Hue组件创建工作流,并使该工作流每天定时执行。...接下来,分别介绍不同类型作业创建过程。 1、创建shell类型作业 Hue 可以提交Shell类型作业,事先将Shell脚本存放至HDFS中。...sh; 2是填写脚本路径,注意是在HDFS上路径; 3是填写执行sh命令所需参数。...其中,(1)填写可执行Jar在HDFS中路径;(2)填写Jar所需参数,在本例子中是数据输入和输出路径。...三、运行Workflow 手动触发Workflow运行 选择将运行Workflow, 点击Submit按钮 image.png 定时触发Workflow执行 使用Hue控制台,我们很方便配置定时执行

    1.5K20

    Assembly 部署流程

    因为我们如果直接构建一个 Spring Boot FatJar 交由运维人员部署的话,整个配置文件都被隐藏到 jar 中,想要针对不同环境修改配置文件就变成了一件很困难事情。...如果存在环境不确定,或者需要启动脚本启动项目的时候,这种直接通过 jar 方式后续会需要处理很多工作。...使用Assembly打包和部署Spring Boot工程 编写服务启动/停止脚本 首先在 assembly 目录下创建一个 bin 文件夹,然后在该文件夹下创建一个 start.sh 文件,这个是 linux..." 然后创建一个 stop.sh 文件,这个是 linux 环境下停止脚本,具体内容如下。...每次发布版本如果都要上传这个整个 jar 包,既浪费带宽也浪费时间。 下面介绍如何将项目的外部依赖跟自己代码包分开打包,这样当项目修改后,只需要上传覆盖修改后包即可。

    1.6K40

    快速学习-Saturn Executor部署

    Saturn Executor部署 Executor是作业执行器。这一节将介绍如何将调试好作业部署到Executor上面运行。关于如何开发调试作业,见“入门”一章。.../bin: 存放executor启动脚本(saturn-executor.sh) /bin: 存放executor启动脚本(saturn-executor.sh) /demo_script: 一些演示用脚本...(4个php脚本) /lib: 存放executor依赖及第三方jar包 /logs: 已经不作使用,将被废弃 saturn-executor.jar:executor启动jar 2.3 作业部署...请确保这些脚本有足够权限被执行。 2.3.2 部署Java作业 将开发并打包好**-app.zip在/saturn-executor-{version}同一级目录进行解压。目录结构见下图。...-e N 本executor唯一ID,如果不指定则使用hostname hostname -env N 运行模式,可取值为dev/product。

    1.8K21
    领券