簡體   English   中英

如何從命令行限制Java App的最大執行時間

[英]How To Limit Max Execution Time for Java App from Command Line

從命令行執行Java應用程序時,如何限制最大執行時間,如下所示:

java -Xmx10G -cp /weka/weka.jar weka.classifiers.trees.J48 -t /test/test-vector.arff -d /test/test.model

我不相信Java內置了什么可以為您完成此操作。 選項:

  • 編寫一個包裝器類,該類將啟動原始類,但還會創建一個計時器線程,以在當前進程未及時完成時終止當前進程。
  • 使用操作系統功能

作為后者的一個示例,在類似Unix的系統上的bash中,可以在開始該過程之前使用ulimit -t [seconds]

編輯:正如評論中指出的那樣,尚不清楚使用ulimit進行這樣的關閉有多優雅-線程是否會以足夠有禮貌的方式被殺死以允許finally塊執行等。這可能值得測試。

編輯:再次根據注釋,ulimit限制CPU時間,而不是整個牆面時間。 這可能是,也可能不是,這取決於您的進程是否受CPU限制。

好了,您可以使用Java的調度程序在一定時間后關閉應用程序:

http://download.oracle.com/javase/1,5.0/docs/api/java/util/Timer.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM