-----------------------------------------------------------------
原創博文,如需轉載請注明出處!
博主:疲憊的豆豆
鏈接: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