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

从jar中的资源运行SH文件

是指从Java的可执行JAR文件中运行一个Shell脚本文件(.sh文件)。这种方式通常用于在Java应用程序中执行一些系统级别的操作或命令。

在Java中,可以使用ProcessBuilder类来创建一个新的进程并运行Shell命令或脚本。以下是一个示例代码,演示了如何从jar中的资源运行SH文件:

代码语言:txt
复制
import java.io.*;

public class RunShellScriptFromJar {
    public static void main(String[] args) {
        try {
            // 获取jar中的资源文件路径
            String scriptPath = RunShellScriptFromJar.class.getResource("/script.sh").getPath();

            // 创建进程并运行Shell脚本
            ProcessBuilder processBuilder = new ProcessBuilder("sh", scriptPath);
            Process process = processBuilder.start();

            // 获取Shell脚本的输出结果
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }

            // 等待Shell脚本执行完毕
            int exitCode = process.waitFor();
            System.out.println("脚本执行完毕,退出码:" + exitCode);
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,首先通过getResource()方法获取jar中的资源文件路径。然后使用ProcessBuilder创建一个新的进程,并指定要执行的Shell脚本文件。接下来,通过getInputStream()方法获取Shell脚本的输出结果,并将其打印出来。最后,使用waitFor()方法等待Shell脚本执行完毕,并获取其退出码。

注意:在将Shell脚本文件打包到JAR中时,需要将其放置在合适的位置,例如在JAR的根目录或指定的资源文件夹中。在示例中,假设Shell脚本文件名为script.sh,并将其放置在JAR的根目录。

对于这个问题中提到的名词"从jar中的资源运行SH文件",可以概括为从Java的可执行JAR文件中执行Shell脚本文件的操作。这种方式常见于需要在Java应用程序中执行一些系统级别的操作或命令的场景。

腾讯云相关产品和产品介绍链接地址:暂无推荐特定腾讯云产品与此操作相关。

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

相关·内容

Linux系统下如何运行.sh文件实现

在Linux系统下运行.sh文件有两种方法,比如我在root目录下有个datelog.sh文件 第一种(这种办法需要用chmod使得文件具备执行条件(x): chmod u+x datelog.sh):...1、在任何路径下,输入该文件绝对路径/root/datelog.sh就可执行该文件(当然要在权限允许情况下) ?...2、cd到datelog.sh文件目录下,然后执行./datelog.sh ?...第二种(这种办法不需要文件具备可执行权限也可运行): 1、在该文件路径下sh加上文件名字即可,sh datelog.sh ?...: 1、修改可执行权限:chmod u+x hello.sh 2、任意打开一个文件夹,选择左上角【编辑】->【首选项】 选择【打开可执行文本文件运行它们】即可实现双击运行

12.1K21

javajar包内类访问jar包内部资源文件路径和获得读取资源文件内容问题

在大数据开发和java web开发,我们有时会在程序读取一些资源文件内容。...当我们在本地运行调试时候是没有任何问题,但是当我们将程序打成jar包上传到集群运行时,发现报错:“找不到配置文件路径”。虽然jar确实存在配置文件,但是还是读取不到。...相关解决方法可以参考以下相关资料:  javajar包内类访问jar包内部资源文件路径问题: http://blog.csdn.net/mm_bit/article/details/50372229...获取jar包内部资源文件: http://blog.csdn.net/luo_jia_wen/article/details/50057191 【解惑】深入jar包:jar读取资源文件: http...://www.iteye.com/topic/483115  jar读取资源配置文件jar包内包外,以及包内读取目录方法: http://blog.csdn.net/T1DMzks/article/

9.3K20
  • 获取jar包内部资源文件

    通常获取一个资源文件很简单,问题是对于jar包内资源文件,可能会发生意外。...main方法它会读取当前根路径下(src/bin)资源文件,假如存在目录library和子文件a.txt,这里会打印出true; 现在把这段代码和资源文件打成myfile.jar运行在一个myeclipse...然而控制台打印false;将其引入到war工程在tomcat运行,依然打印false。 也就是说,资源文件使用类无法找到自己,jar包正常功能将无法提供。这是一个常见关于jar路径问题。.../library 显而易见,获取jar文件路径格式已经变为*.jar!*(除了第一个),这种格式路径,不能通过new File方式找到文件。目前本人也没有找到其它处理方式,欢迎评论指点。...在这种情况下,如果想让jar读取到自己资源文件,可以通过类加载器getResourceAsStream方法来解决。

    1.7K20

    Java -jar参数详解:掌握Java可执行JAR文件运行技巧

    作为一种常用开发语言,Java经常使用可执行JAR(Java Archive)文件来打包和分发应用程序。使用java -jar命令运行JAR文件是一种方便快捷方式。...本文将详细介绍java -jar命令各种参数,帮助您充分利用这个功能。 一、简介 java -jar命令用于运行可执行JAR文件。...它会自动查找JAR文件清单文件(MANIFEST.MF),并根据清单文件Main-Class属性指定主类来启动应用程序。...=256m 将元空间最大大小设置为256MB,最后,通过-jar选项指定要运行JAR文件为myapp.jar。...命令常用参数、使用方法及其启动脚本,帮助您更好地掌握Java可执行JAR文件运行技巧。

    2.7K30

    Linuxjar包启动和jar包后台运行实现方式

    方式三 nohup java -jar shareniu.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 当用 nohup 命令执行作业时,缺省情况下该作业所有输出被重定向到...nohup.out文件,除非另外指定了输出文件。...输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件。...fg 23 查看某端口占用线程pid netstat -nlp |grep :9181 如果忘了进程号,可以通过如下命令来查看当前运行jar包程序进程号 ps -ef|grep xxx.jar...或者 ps -aux | grep java //关闭进程 kill -s 9 24204 24204代表上一步查出进程ID 总结 以上所述是小编给大家介绍Linuxjar包启动和jar包后台运行实现方式

    9K22

    Android项目实战(二十四):项目包成jar文件,并且将工程引用jar一起打入新jar文件

    其实.jar文件就是一个类似.zip文件压缩包,里面包含了一些源代码,注意是.jar不包含资源文件(res、图片等) ----------------------------------------....jar文件类找不到。...这里可以猜测,使用上述方法将android项目打成.jar文件过程,并没有将android项目原来引用第三方.jar文件也一起打入到新.jar文件。...文件android项目原先引用第三方.jar文件没有被打入到 新.jar文件 那么我们想:怎么在android项目打成.jar文件时候 顺带把 android项目引用第三方.jar文化也一并打入到新...如果不想命名为build.xml,运行时可以使用 ant -buildfile test.xml 命令指明要运行构建文件

    1.3K100

    Centos7 运行Springboot打包后jar文件相关操作

    1.运行jar包命令如下: 方式1:java -jar demo.jar 特点:CTRL + C 或 关闭ssh窗口,程序退出 方式2: java -jar demo.jar & 特点...方式3:nohup java -jar demo.jar & 特点:nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 2.结束运行jar文件: 使用ps aux命令查看进程号...PID,执行 kill -9 PID 结束程序 前台进程,直接执行 Ctrl+c 终止运行程序 3.限制jar文件内存使用: nohup java -jar -Xms512M -Xmx2048M...MaxPermSize:永久内存最大值 堆内存和永久内存区别以及其他参数设置,参考jvm运行机制 一般情况下执行以下命令限制JAR文件使用内存即可: 1.在后台不间断运行程序: nohup...java -jar -Xms100M -Xmx200M demo.jar 2.前台运行程序限制内存 java -jar -Xms100M -Xmx200M demo.jar

    65610

    Android项目实战(二十四):项目包成jar文件,并且将工程引用jar一起打入新jar文件

    其实.jar文件就是一个类似.zip文件压缩包,里面包含了一些源代码,注意是.jar不包含资源文件(res、图片等) ----------------------------------------....jar文件类找不到。...这里可以猜测,使用上述方法将android项目打成.jar文件过程,并没有将android项目原来引用第三方.jar文件也一起打入到新.jar文件。...文件android项目原先引用第三方.jar文件没有被打入到 新.jar文件 那么我们想:怎么在android项目打成.jar文件时候 顺带把 android项目引用第三方.jar文化也一并打入到新...如果不想命名为build.xml,运行时可以使用 ant -buildfile test.xml 命令指明要运行构建文件

    1.2K40

    Centos7 运行Springboot打包后jar文件相关操作

    1.运行jar包命令如下: 方式1:java -jar demo.jar 特点:CTRL + C 或 关闭ssh窗口,程序退出 方式2: java -jar demo.jar & 特点...方式3:nohup java -jar demo.jar & 特点:nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 2.结束运行jar文件: 使用ps aux命令查看进程号...PID,执行 kill -9 PID 结束程序 前台进程,直接执行 Ctrl+c 终止运行程序 3.限制jar文件内存使用: nohup java -jar -Xms512M -Xmx2048M...MaxPermSize:永久内存最大值 堆内存和永久内存区别以及其他参数设置,参考jvm运行机制 一般情况下执行以下命令限制JAR文件使用内存即可: 1.在后台不间断运行程序: nohup java...-jar -Xms100M -Xmx200M demo.jar 2.前台运行程序限制内存 java -jar -Xms100M -Xmx200M demo.jar ---- JAVA

    43920

    PE 文件资源表中提取文件版本信息

    0x1 计算资源表数据块实际内存地址 由于现在内存缓冲区 PE 文件内容并不是通过 Windows PE 文件装载器加载进系统,所以在计算数据块实际内存地址时候,不能直接使用 RVA 进行计算。...PointerToRawData 域是该区块基于文件偏移量,根据该域值找到该区块数据在文件位置。...0x2 解析资源数据块 资源数据是 PE 文件重要组成部分,包括位图、光标、对话框、图标、菜单、字符串表、工具栏、版本信息等。在 PE 文件所有结构资源部分是最复杂。...该结构体只用来描述在版本信息资源数据,并不出现在附带于 SDK 任何头文件。 获取该结构体更多信息请访问文后 0x5 节超链接。...需要注意是,这里 String 类型并非 C++ 定义 std::string 数据类型,而只是 PE 文件结构定义一种结构体类型。

    3.1K20

    解决SpringBoot jar文件读取问题

    前言 SpringBoot微服务已成为业界主流,开发到部署都非常省时省力,但是最近小明开发时遇到一个问题:在代码读取资源文件(比如word文档、导出模版等),本地开发时可以正常读取 ,但是,当我们打成...jar包发布到服务器后,再次执行程序时就会抛出找不到文件异常。...通过仔细观察堆栈信息,我发现此时文件路径并不是一个合法URL(文件资源定位符)。原来jar包中资源有其专门URL形式:jar:!/{entry} )。...所以,此时如果仍然按照标准文件资源定位形式 File f=new File("jar:file:……"); 定位文件,就会抛出java.io.FileNotFoundException。...解决 虽然我们不能用常规操作文件方法来读取jar资源文件docxTemplate.docx,但可以通过Class类getResourceAsStream()方法,即通过流方式来获取 :

    2.9K21

    修改jar文件内容 - Java技术债务

    导引 首先问问为什么要直接修改jar文件,而不是重新打包,在非必要情况下,不要直接修改jar包,这样容易出事故; 当然也有一些场景不得不修改jar包,比如: 只有jar包没有源码 重新打包流程麻烦...vim命令修改配置文件 使用vim命令修改虽然方便快捷,但是不能修改二进制文件,只能修改未被编码内容,比如jar配置文件等。...jar命令替换jar文件(也可新增) 列出jar文件清单 jar tf xmars-ai-center.jar 提取出内部jar指定文件 jar xf xmars-ai-center.jar...修改指定文件 vim ./* . * 重新打包 jar -cfM0 xmars-ai-center.jar ./***/ 运行 java -jar xmars-ai-center.jar...x 档案中提取指定 (或所有) 文件 u 更新现有的归档文件 v 在标准输出中生成详细输出

    18410

    为什么SpringBoot jar文件读取不到?

    1 猿与故事 今天故事发生在程序猿菜菜身上。 凡是对接过三方都知道,代码难免要加载很多三方分配证书等相关配置文件。...菜菜同学每天工作便是与三方对接,而且这次任务是接入 N 套证书相关配置文件。考虑到后期易于上线,于是菜菜开启了硬编码到易维护代码优化之路。...问题很清晰了,通过上面这种方式获取 SpringBoot 打好 jar 资源文件不太可行,需要换方案。...3 菜菜侃大山 1、如何获取 SpringBoot jar指定文件夹下资源文件子目录?...菜菜曰:SpringBoot 没办法通过 File 形式访问 jar 包里面的文件,借助 resource.getURL().getPath() 获取当前资源对应URL路径得以解决。

    1.3K20
    领券