從C++ /做背景的,我已經習慣了做這樣的事情來構建和運行小型/中型項目:從命令行運行中小型Java程序的最佳方式是什麼?
make
./foobar
然而,與Java /螞蟻我發現我必須做些什麼像這樣:
ant
java -ea -cp build/ foobar
打字java -ea -cp build/ foobar
我想測試我的程序每次都煩了,我寧願能夠做一些簡單的像./foobar
。
我想出了兩個可能的解決方案來解決這個問題,但都不是很好。首先是隻是有compile
目標創建一個名爲run
文件:
#!/bin/bash
java -ea -cp build/ foobar
,然後只用./run
運行的程序,然而,這似乎跟螞蟻的跨平臺性,也似乎只是一個一點點黑客。
第二個選擇是創建一個run
目標,例如:
<target name="run" depends="compile">
<java classname="foobar" fork="true">
<classpath>
<pathelement path="${build}"/>
<pathelement path="${java.class.path}"/>
</classpath>
<assertions>
<enable/>
</assertions>
</java>
</target>
此方法也適用,並且似乎有點清潔,但慢得令人難以置信!例如:
$ time ant run
Buildfile: /somepath/build.xml
init:
compile:
run:
[java] /* program output */
BUILD SUCCESSFUL
Total time: 1 second
real 0m2.683s
user 0m2.548s
sys 0m0.136s
以上是幾乎20倍比這慢:
$ time ./run
/* program output */
real 0m0.143s
user 0m0.124s
sys 0m0.020s
那麼,有從命令運行的小/中的Java程序的一個更好/更標準的方式(!)線?或者我應該只使用我在這裏發佈的一種方法?
我傾向於只是將命令寫出來,然後依靠我的shell的歷史記錄再次運行它。 ' -r foob '應該讓我那裏。我承認,對任何實際用戶都沒有幫助。 –
如果你想快速運行一個程序,我會從IDE運行它。這讓您可以在您鍵入並單擊按鈕運行或運行Debug時查看編譯器錯誤。 –
我不是Ant專家,但Gradle有一個[應用程序插件](http://gradle.org/docs/current/userguide/application_plugin.html),它提供了運行程序的「run」任務作爲'installApp'任務,它創建特定於平臺的啓動腳本。很可能有一個Ant等價物。 –