在上一篇中我们介绍了此次大赛的环境配置,下面我们来运行我们的代码,并测试提交(Java版的,C++的小伙伴估计也差不多吧)。
注意:我的Java程序是按照官网给的SDK编写,打包时,按个人情况不同做修改即可。
tips: 使用ctrl+alt+t可以打开终端命令行
第一步
进入主文件夹 里面有个craft文件夹 我们的操作基本都在这里执行。
目录中最初会有这几个文件夹
- testcase ->测试用例所在目录
- craft.tar.gz ->应该是示例打包规范吧。
- futureRunner.jar 和 smoke ->应该都是测试你打包后的程序的。
第二步
在大赛官网我们会下载下来一个赛题包。把赛题包和我们的Java项目都通过优盘考进来吧!如下图所示:
在赛题包中,有一个供java使用的SDK,把他复制出来:
让我们看看这个SDK文件夹的内部构造吧:
- bin ->该目录可不是放字节码文件的。他是用来存放通过build.sh自动化编译打包产生的jar包的。其中还有个startup.sh文件,是用来运行我们的jar包程序的。
- code ->此目录里用来存放我们的java工程 也就是源码。直接把工程文件夹丢进去就好了。
- test->感觉没什么卵用
- build.sh 自动化编译打包脚本
-
makelist.txt 要编译的所有java文件 包名+类名
介绍完这些,其实就可以编译打包了。在makelist.txt中写上你所有需要编译的java文件
这里我只是提供一个示例,上面是SDK本身自带的,下面是你添加的。在你的Java工程里根目录下应该也有个build.txt(没有新建一个),一样的东东,拷贝过去吧~
第三步
执行命令 编译打包
cd 到SDK-java-0.9目录下,运行bulid.sh之前,可以ls -l查看一下build.sh是否有可执行权限:
看前三位,我第一次运行时只有rw没有x。所以执行chmod 744 build.sh 给其赋予可执行权限。
然后就可以执行./build.sh命令了。这之中我又用了一个问题,意思是javac 和 jar命令未找到。 解决办法:在命令行中输入javac,然后它会提示你下载jdk,用它给的sudo命令下载中间的openjdk7就可以了。
这时我们再执行./build.sh命令,神奇的事情发生了,经过一系列刷屏,最后提示我们的程序被打包成功:
这时我们在SDK-java-0.9目录下的bin文件夹下就会看到我们编译好的jar包 :
第四步
通过startup.sh运行我们的jar包(可选)
也就是执行sh startup.sh命令,看readme里给我们的提示:
sh startup.sh /xxx/topo.csv /xxx/demand.csv /xxx/result.csv
后面三个是测试文件路径,自己根据自己测试文件的位置填一下即可。
注意: 执行startup.sh命令时也许看下其有无执行权限,14行报错问题,我是将 $JAVA 直接改成了java;
第五步
将我们生成的jar包 和 code里的源码 打成tar.gz形式的压缩包。
先将我们的jar包和code文件夹移到同一个目录下,cd到该目录,然后执行以下命令:
tar zcvf future_net.tar.gz code future_net.jar(你的jar包的名称)
这时会在该目录下生成一个.tar.gz的压缩包,把该压缩包用优盘考出来,就可以提交了.
(提交之前可以用官方给的smoke命令测试下,方法是把压缩包移动到和smoke文件同级目录,执行./smoke future_net.tar.gz)
到此本文就全部结束了,小弟提交成功得分不高,就是希望有更多的童鞋可以提交成功。最后祝大家赛出好成绩,拿走2oW大奖和手机~~