在上一篇中我們介紹了此次大賽的環(huán)境配置,下面我們來運(yùn)行我們的代碼毡惜,并測試提交(Java版的拓轻,C++的小伙伴估計也差不多吧)。
注意:我的Java程序是按照官網(wǎng)給的SDK編寫经伙,打包時扶叉,按個人情況不同做修改即可。
tips: 使用ctrl+alt+t可以打開終端命令行
第一步
進(jìn)入主文件夾 里面有個craft文件夾 我們的操作基本都在這里執(zhí)行帕膜。
目錄中最初會有這幾個文件夾
- testcase ->測試用例所在目錄
- craft.tar.gz ->應(yīng)該是示例打包規(guī)范吧枣氧。
- futureRunner.jar 和 smoke ->應(yīng)該都是測試你打包后的程序的。
第二步
在大賽官網(wǎng)我們會下載下來一個賽題包垮刹。把賽題包和我們的Java項(xiàng)目都通過優(yōu)盤考進(jìn)來吧达吞!如下圖所示:
在賽題包中,有一個供java使用的SDK荒典,把他復(fù)制出來:
讓我們看看這個SDK文件夾的內(nèi)部構(gòu)造吧:
- bin ->該目錄可不是放字節(jié)碼文件的酪劫。他是用來存放通過build.sh自動化編譯打包產(chǎn)生的jar包的吞鸭。其中還有個startup.sh文件,是用來運(yùn)行我們的jar包程序的覆糟。
- code ->此目錄里用來存放我們的java工程 也就是源碼刻剥。直接把工程文件夾丟進(jìn)去就好了。
- test->感覺沒什么卵用
- build.sh 自動化編譯打包腳本
-
makelist.txt 要編譯的所有java文件 包名+類名
介紹完這些滩字,其實(shí)就可以編譯打包了透敌。在makelist.txt中寫上你所有需要編譯的java文件
這里我只是提供一個示例,上面是SDK本身自帶的踢械,下面是你添加的。在你的Java工程里根目錄下應(yīng)該也有個build.txt(沒有新建一個)魄藕,一樣的東東内列,拷貝過去吧~
第三步
執(zhí)行命令 編譯打包
cd 到SDK-java-0.9目錄下,運(yùn)行bulid.sh之前背率,可以ls -l查看一下build.sh是否有可執(zhí)行權(quán)限:
看前三位话瞧,我第一次運(yùn)行時只有rw沒有x。所以執(zhí)行chmod 744 build.sh 給其賦予可執(zhí)行權(quán)限寝姿。
然后就可以執(zhí)行./build.sh命令了交排。這之中我又用了一個問題,意思是javac 和 jar命令未找到饵筑。 解決辦法:在命令行中輸入javac埃篓,然后它會提示你下載jdk,用它給的sudo命令下載中間的openjdk7就可以了根资。
這時我們再執(zhí)行./build.sh命令,神奇的事情發(fā)生了架专,經(jīng)過一系列刷屏,最后提示我們的程序被打包成功:
這時我們在SDK-java-0.9目錄下的bin文件夾下就會看到我們編譯好的jar包 :
第四步
通過startup.sh運(yùn)行我們的jar包(可選)
也就是執(zhí)行sh startup.sh命令玄帕,看readme里給我們的提示:
sh startup.sh /xxx/topo.csv /xxx/demand.csv /xxx/result.csv
后面三個是測試文件路徑,自己根據(jù)自己測試文件的位置填一下即可裤纹。
注意: 執(zhí)行startup.sh命令時也許看下其有無執(zhí)行權(quán)限,14行報錯問題锡移,我是將 $JAVA 直接改成了java罩抗;
第五步
將我們生成的jar包 和 code里的源碼 打成tar.gz形式的壓縮包灿椅。
先將我們的jar包和code文件夾移到同一個目錄下,cd到該目錄钞支,然后執(zhí)行以下命令:
tar zcvf future_net.tar.gz code future_net.jar(你的jar包的名稱)
這時會在該目錄下生成一個.tar.gz的壓縮包烁挟,把該壓縮包用優(yōu)盤考出來撼嗓,就可以提交了.
(提交之前可以用官方給的smoke命令測試下欢唾,方法是把壓縮包移動到和smoke文件同級目錄,執(zhí)行./smoke future_net.tar.gz)
到此本文就全部結(jié)束了斑芜,小弟提交成功得分不高祟霍,就是希望有更多的童鞋可以提交成功沸呐。最后祝大家賽出好成績,拿走2oW大獎和手機(jī)~~