[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 -1 

这样就可以得到最后输出的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

转载于:https://www.cnblogs.com/dzblog/p/6914146.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值