[Shell]Shell调用并获取执行jar包后的返回值
-----------------------------------------------------------------
原创博文,如需转载请注明出处!
博主:疲惫的豆豆
链接:http://www.cnblogs.com/dzblog/p/6914146.html
----------------------------------------------------------------
场景:
写了一个java的内测分发小程序,作用是jenkins构建完成后,执行这个java程序上传ipa或apk文件到特定的服务器(非普通的ftp server),而后服务器会返回一个内测链接,进而分发这个链接到公司群里,提供给公司内部下载测试。
在jenkins这里,在上传完文件后,需要拿到一个内测链接,如何拿到呢?
解决方式:
其实解决方式很简单,只要jar里最后输出的是这个内测链接就可以了。
jar里main函数代码:
    public static void main(String args[]) {
        String inputFile = "";
        String URL = "";
        if (args.length == 0) {
            System.out.println("Error:Please pass the upload file path");
            return;
        }此处为代码片段
        }else{
            inputFile = args[0];
            System.out.println("Info: File path:".concat(inputFile));
        }
        File file = new File(inputFile);
        URL=ReleaseToServer(file.getAbsoluteFile());
        System.out.println(URL);
    }
重点在最后的输出语句。
那么问题来了,如何获得呢?
通过简单的shell脚本即可:
java -jar upload.jar "file path" | tail -
这样就可以得到最后输出的URL。
如果想要返回JVM退出时的状态,也是未尝不可。众所周知,因为程序执行完毕,正常退出返回0,非0的返回都是非正常退出。所以java代码也可以这么写。
public class Test {
    public static void main(String[] args) {
        System.exit(4);
    }
}
不过如果无法改java代码也无所谓,直接shell命令如下:
java -jar test.jar
echo $?
返回值是0,说明程序正常执行完毕。
参考链接:
How to get the last output of a file in terminal?
End
[Shell]Shell调用并获取执行jar包后的返回值的更多相关文章
- spring boot mybatis 打成可执行jar包后启动UnsatisfiedDependencyException异常
		我的spring boot + mybatis项目在idea里面执行正常,但发布测试环境打成可执行jar包后就启动失败,提示错误如下: [ ERROR] [2018-08-30 17:23:48] o ... 
- eclipse导出maven工程的可执行jar包
		一.eclipse导出maven工程的可执行jar包 建立两个maven工程 ZKServer 和ZKClient 注意:用maven进行开发管理的话,默认的打出来的jar包是不能运行的,需要在pom ... 
- SpringBoot+Maven多模块项目(创建、依赖、打包可执行jar包部署测试)完整流程
		一,创建Maven多模块项目先建立外层父工程 File →new →project 选择Spring Initializr Next下一步到以下页面 工程结构如下 ... 
- JAVA生成(可执行)Jar包的全面详解说明  [打包][SpringBoot][Eclipse][IDEA][Maven][Gradle][分离][可执行]
		辛苦所得,转载还请注明: https://www.cnblogs.com/applerosa/p/9739007.html 得空整理了关于java 开发中,所有打包方式的 一个操作方法, 有基于ID ... 
- SoapUI接口测试-验签值处理-调用java的加密jar包
		转载自:https://www.jianshu.com/p/7c672426a165 一. 背景: 调用接口时有个请求参数是对请求入参按一定规则进行加密生成的验签值,每次不同参数的请求生成唯一的验签值 ... 
- 使用原生Java代码生成可执行Jar包
		最近想做一个功能,就是把我们编译后的字节码及其资源文件打包成一个可执行的jar包,在装有jre的机器上双击就能运行. 首先是我们需要选择哪些字节码和文件需要打包到文件中,这个我们用JFileChoos ... 
- IDEA 直接点击运行执行正常,命令行下面执行Jar包出现部分乱码的情况。
		解决方案如上: 有个Springboot项目为了测试方便,模型类用中文作为字段属性,封装成Odata格式,在通过Springboot发布并打成jar包. 通过命令行启动jar包里面的Springweb ... 
- Spring Boot可执行Jar包运行原理
		目录 1. 打可执行Jar包 2. 可执行Jar包内部结构 3. JarLauncher 4. 简单总结 5. 远程调试 Spring Boot有一个很方便的功能就是可以将应用打成可执行的Jar.那么 ... 
- Spring Boot 怎么打一个可执行 Jar 包?
		传统的 Java 应用程序都需要打一个 war 包,并到到 Tomcat webapps 目录下运行. Java 支持打 Jar 包,但没有提供一个标准的方式在一个 Jar 包内再加载嵌入别的 Jar ... 
随机推荐
- VUE实现登录然后跳转到原来的页面
			可以在路由里面设置需要登录的界面,判断下没有登录就跳转到登录界面,登录了就不用登录,这里用的是一个存储的 router.beforeEach((to, from, next) => { if(t ... 
- 结果集ResultSet
			我们访问数据库时候经常见到这样遍历结果集 conn = DBHelper.getConnection(); String sql = "select * from items"; ... 
- PIL: 建立一个GIF图
			PIL: 建立一个GIF图 一.下载PIL库: PIL库的下载是:pip install pillow(pillow就是PIL函数了) 二.采用以下代码(有注释): import PIL.Imag ... 
- 计算机爱好者协会技术贴markdown第四期
			首先先让爱酱用CSDN自带的数学公式方法来闪瞎大家的钛合金狗眼: 有没有感觉到Markdown的强大!!!!! ## KaTeX数学公式 您可以使用渲染LaTeX数学表达式 [KaTeX](https ... 
- nginx高级用法汇总
			1,nginx限制IP访问,允许IP访问 1.1 模块:nginx_http_access_module 注意:检测顺序是按配置顺序进行的,匹配首条规则将会被使用,所以要注意在配置文件配置的顺序. a ... 
- ubuntu18.04时区设置
			1.运行命令 sudo tzselect 2.选择大区 选择亚洲Asia,继续选择中国China,最后选择北京Beijing 3.建立软链 ln -sf /usr/share/zoneinfo/Asi ... 
- h3c acl配置一列
			acl number 3004 rule 0 permit ip source 10.2.1.4 0 rule 1 deny ip source 192.168.1.91 0 rule 2 deny ... 
- B树/[oracle]connect BY语句
			读大神的书,出现很多没有见过的函数和便捷操作,特此记录 connect by 之前没有接触过,为了学习这个语句,先了解一下B树数据类型是最好的方法. [本人摘自以下博客] https://www.cn ... 
- Excel把数据存入共享字符串文件中并返回该字符串的下标
			public static int InsertSharedStringItem(string text, pkg.SharedStringTablePart shareStringPart) { i ... 
- JS获取form表单数据
			以下代码可放在一个js文件中,以便通用: //获取指定表单中指定标签对象 function getElements(formId, label) { var form = document.getEl ... 
