在上一篇中我們介紹了此次大賽的環(huán)境配置,下面我們來運(yùn)行我們的代碼,并測(cè)試提交(Java版的,C++的小伙伴估計(jì)也差不多吧)。
注意:我的Java程序是按照官網(wǎng)給的SDK編寫,打包時(shí),按個(gè)人情況不同做修改即可。
tips: 使用ctrl+alt+t可以打開終端命令行
第一步
進(jìn)入主文件夾 里面有個(gè)craft文件夾 我們的操作基本都在這里執(zhí)行。
目錄中最初會(huì)有這幾個(gè)文件夾
- testcase ->測(cè)試用例所在目錄
- craft.tar.gz ->應(yīng)該是示例打包規(guī)范吧。
- futureRunner.jar 和 smoke ->應(yīng)該都是測(cè)試你打包后的程序的。

第二步
在大賽官網(wǎng)我們會(huì)下載下來一個(gè)賽題包。把賽題包和我們的Java項(xiàng)目都通過優(yōu)盤考進(jìn)來吧!如下圖所示:

在賽題包中,有一個(gè)供java使用的SDK,把他復(fù)制出來:

讓我們看看這個(gè)SDK文件夾的內(nèi)部構(gòu)造吧:

- bin ->該目錄可不是放字節(jié)碼文件的。他是用來存放通過build.sh自動(dòng)化編譯打包產(chǎn)生的jar包的。其中還有個(gè)startup.sh文件,是用來運(yùn)行我們的jar包程序的。
- code ->此目錄里用來存放我們的java工程 也就是源碼。直接把工程文件夾丟進(jìn)去就好了。
- test->感覺沒什么卵用
- build.sh 自動(dòng)化編譯打包腳本
-
makelist.txt 要編譯的所有java文件 包名+類名
介紹完這些,其實(shí)就可以編譯打包了。在makelist.txt中寫上你所有需要編譯的java文件
11.png
這里我只是提供一個(gè)示例,上面是SDK本身自帶的,下面是你添加的。在你的Java工程里根目錄下應(yīng)該也有個(gè)build.txt(沒有新建一個(gè)),一樣的東東,拷貝過去吧~
第三步
執(zhí)行命令 編譯打包
cd 到SDK-java-0.9目錄下,運(yùn)行bulid.sh之前,可以ls -l查看一下build.sh是否有可執(zhí)行權(quán)限:

看前三位,我第一次運(yùn)行時(shí)只有rw沒有x。所以執(zhí)行chmod 744 build.sh 給其賦予可執(zhí)行權(quán)限。
然后就可以執(zhí)行./build.sh命令了。這之中我又用了一個(gè)問題,意思是javac 和 jar命令未找到。 解決辦法:在命令行中輸入javac,然后它會(huì)提示你下載jdk,用它給的sudo命令下載中間的openjdk7就可以了。
這時(shí)我們?cè)賵?zhí)行./build.sh命令,神奇的事情發(fā)生了,經(jīng)過一系列刷屏,最后提示我們的程序被打包成功:

這時(shí)我們?cè)赟DK-java-0.9目錄下的bin文件夾下就會(huì)看到我們編譯好的jar包 :

第四步
通過startup.sh運(yùn)行我們的jar包(可選)
也就是執(zhí)行sh startup.sh命令,看readme里給我們的提示:
sh startup.sh /xxx/topo.csv /xxx/demand.csv /xxx/result.csv
后面三個(gè)是測(cè)試文件路徑,自己根據(jù)自己測(cè)試文件的位置填一下即可。
注意: 執(zhí)行startup.sh命令時(shí)也許看下其有無執(zhí)行權(quán)限,14行報(bào)錯(cuò)問題,我是將 $JAVA 直接改成了java;
第五步
將我們生成的jar包 和 code里的源碼 打成tar.gz形式的壓縮包。
先將我們的jar包和code文件夾移到同一個(gè)目錄下,cd到該目錄,然后執(zhí)行以下命令:
tar zcvf future_net.tar.gz code future_net.jar(你的jar包的名稱)
這時(shí)會(huì)在該目錄下生成一個(gè).tar.gz的壓縮包,把該壓縮包用優(yōu)盤考出來,就可以提交了.
(提交之前可以用官方給的smoke命令測(cè)試下,方法是把壓縮包移動(dòng)到和smoke文件同級(jí)目錄,執(zhí)行./smoke future_net.tar.gz)
到此本文就全部結(jié)束了,小弟提交成功得分不高,就是希望有更多的童鞋可以提交成功。最后祝大家賽出好成績(jī),拿走2oW大獎(jiǎng)和手機(jī)~~
