zoukankan      html  css  js  c++  java
  • [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

  • 相关阅读:
    Excel技巧大全
    2019年6月27日单词
    HTML5(12) 实时通讯WebSocket
    C#(99):随机数Random
    C#(99):C# 8.0 的新特性( NET Framework 4.8 与 Visual Studio 2019 )
    2019年6月13日单词
    2019年6月5日单词
    2019年5月30日单词
    used to do 与be used to doing /n.
    Json.Net(一)介绍
  • 原文地址:https://www.cnblogs.com/dzblog/p/6914146.html
Copyright © 2011-2022 走看看