-----------------------------------------------------------------

原创博文,如需转载请注明出处!

博主:疲惫的豆豆

链接: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包后的返回值的更多相关文章

  1. spring boot mybatis 打成可执行jar包后启动UnsatisfiedDependencyException异常

    我的spring boot + mybatis项目在idea里面执行正常,但发布测试环境打成可执行jar包后就启动失败,提示错误如下: [ ERROR] [2018-08-30 17:23:48] o ...

  2. eclipse导出maven工程的可执行jar包

    一.eclipse导出maven工程的可执行jar包 建立两个maven工程 ZKServer 和ZKClient 注意:用maven进行开发管理的话,默认的打出来的jar包是不能运行的,需要在pom ...

  3. SpringBoot+Maven多模块项目(创建、依赖、打包可执行jar包部署测试)完整流程

    一,创建Maven多模块项目先建立外层父工程         File →new →project  选择Spring Initializr          Next下一步到以下页面 工程结构如下 ...

  4. JAVA生成(可执行)Jar包的全面详解说明 [打包][SpringBoot][Eclipse][IDEA][Maven][Gradle][分离][可执行]

    辛苦所得,转载还请注明: https://www.cnblogs.com/applerosa/p/9739007.html  得空整理了关于java 开发中,所有打包方式的 一个操作方法, 有基于ID ...

  5. SoapUI接口测试-验签值处理-调用java的加密jar包

    转载自:https://www.jianshu.com/p/7c672426a165 一. 背景: 调用接口时有个请求参数是对请求入参按一定规则进行加密生成的验签值,每次不同参数的请求生成唯一的验签值 ...

  6. 使用原生Java代码生成可执行Jar包

    最近想做一个功能,就是把我们编译后的字节码及其资源文件打包成一个可执行的jar包,在装有jre的机器上双击就能运行. 首先是我们需要选择哪些字节码和文件需要打包到文件中,这个我们用JFileChoos ...

  7. IDEA 直接点击运行执行正常,命令行下面执行Jar包出现部分乱码的情况。

    解决方案如上: 有个Springboot项目为了测试方便,模型类用中文作为字段属性,封装成Odata格式,在通过Springboot发布并打成jar包. 通过命令行启动jar包里面的Springweb ...

  8. Spring Boot可执行Jar包运行原理

    目录 1. 打可执行Jar包 2. 可执行Jar包内部结构 3. JarLauncher 4. 简单总结 5. 远程调试 Spring Boot有一个很方便的功能就是可以将应用打成可执行的Jar.那么 ...

  9. Spring Boot 怎么打一个可执行 Jar 包?

    传统的 Java 应用程序都需要打一个 war 包,并到到 Tomcat webapps 目录下运行. Java 支持打 Jar 包,但没有提供一个标准的方式在一个 Jar 包内再加载嵌入别的 Jar ...

随机推荐

  1. python 机器学习

    十分钟搞定pandas http://www.cnblogs.com/chaosimple/p/4153083.html dummies 哑变量,将变量重新编码,便于二分类,例如男.女,变为0,1等 ...

  2. XML文件的解析—DOM、SAX

    一.DOM 解析 思路:获得Document对象,遍历其中节点获得需要的内容 要点: Document :  DocuemntBuilderFactory --newDocumentBuilder - ...

  3. Sorl 4.10 入门合集

    Sorl4.10 + Tomcat 7.0  win7环境下的安装 1.首先是到apache官网下载sorl 4.10 ,解压 2.进入路径\solr-4.10.4\example\webapps,拷 ...

  4. (python)编程小练习

    1.将一串字符串反向输出,如将"abcd"变成“dcba” str1="abcd" print str1[::-1] 2.判断是否为回文——判断用户输入的字符串 ...

  5. C++矩阵加速经典题目:Warcraft III 守望者的烦恼 [vijos 1067]

    Warcraft III 守望者的烦恼 背景 守望者-warden,长期在暗夜精灵的的首都艾萨琳内担任视察监狱的任务,监狱是成长条行的,守望者warden拥有一个技能名叫"闪烁", ...

  6. xpath json操作符说明

    XPath JSONPath Description / $ the root object/element . @ the current object/element / . or [] chil ...

  7. SAS 函数

    SAS 函数 SAS函数是编程语言的一个组件,可接受参数.执行计算或进行其他操作并返回值.返回值是字符型或数值型的结果,可用于赋值语句或 表达式中.SAS包含很多函数,也可以自定义函数.在BASE S ...

  8. js事件的绑定与移除

    事件的绑定分为3类: <div id='clickEvent'>点击事件</div> 在DOM元素中直接绑定 <div onclick="alert('4567 ...

  9. go 切片的创建方式

    切片的创建方式现知道的有下面几种方式,切片为指针类型,从数组中得到的切片修改元素值时,原数组也会发生变化(数组为非指针类型) package main import "fmt" f ...

  10. Java Web服务器的联机交易

    我们知道服务器可以对外部的请求进行应答 ,在BS架构中,通过浏览器可以向Apache Tomcat或者WebSphere服务器发送请求.但是可能存在请求的渠道不是浏览器的情况,他有可能是另外一个jav ...