CODEVSでjavaのサンプルを実効する方法まとめ

今週月曜日(2014/12/22)から予選が始まったCODEVSでjavaのサンプルを実効する手順をまとめました

https://codevs.jp/
https://codevs.jp/


0.前提条件
javac java jraコマンドが実行できる環境があること
自分はローカルに立てたubuntuでやりました

1.ログイン
ログインを押してIDとトークンを入力
トークンは公式サイトのエントリーから登録情報変更で見れます

2.提出準備
jarファイルを作成する
2-1.クラスファイルを生成する

javac SampleAI.java

実行すると下記の2つのファイルが出来る

SampleAI.class
SampleAI$Unit.class

2-2.2つのクラスファイルをjarにまとめる
以下のコマンドでまとめる

jar -cvf codevs.jar *.clss

引数は1つ目が生成するjarファイル名、2つ目はどのファイルをまとめるか
※オプションについて
c:jarを新規作成する
v:実行中にコマンドラインに処理内容を表示する
f:jarファイル名を指定する

ここで実行しようとしてもこんな感じでエラー

hoge@ubuntu1404:~/CODEVS4sample/java$ java -jar codevs.jar
codevs.jarにメイン・マニフェスト属性がありません

どのクラスにmainメソッドがあるか書いてないじゃないかと怒られております
なのでそれを明記して、追加してあげましょう
2-3.マニフェストファイルを作成する

vim codevs.mani
この1行だけ追加して保存
Main-Class: SampleAI

2-4.codevs.jarにマニフェストファイルを追加する

java -uvfm codevs.jar codevs.mani

※オプションについて
u:jarを更新する
m:マニフェストファイルを指定する

これで晴れて実行できる

java -jar codevs.jar


3.予選クライアントで実行する
予選クライアントのゲーム開発タブをクリックし、
ファイルを選ぶの右のとこに

java -jar codevs.jar

jarファイルの場所は各自の環境に合わせて変えてください

これで実行ボタンをクリックすればOK

すべてのテストケースが実行し終わると、迫力ある音楽共にシミュレータが実行される!

これだけでわくわくしますよねー


普段はeclipceだよりだとこういう時に苦労する・・・
まあでもIDEに頼りすぎるのも良くないので勉強になりました!



2回めからはこのコマンドで問題ないです

jar -cvfm codevs.jar codevs.mani *.class