以前、と言ってもだいぶ前の話になるけど、SpringサンプルアプリがMac上で動作しないので試行錯誤してみたという記事を書いた。タイトル通り、ある本のサンプルコードをMacで動かす方法について紹介している。
紹介と言っても、大した内容じゃないというか、Macの環境のみに依存したものでもないし、どちらかと言うと自分の備忘録みたいな意味合いが強い。
で、今回はその記事の補足というか訂正というか、まあそういった内容。
[amazonjs asin="4797358114" locale="JP" title="SpringによるWebアプリケーションスーパーサンプル 第2版"]
Chapter1のサンプルを動作させる方法
1-1のSample1を動かす
すると、いきなり以下のようなエラーが発生した。
ant run.sample1
Buildfile: D:\Spring\Samples-1\build.xml
init:
[delete] Deleting directory D:\Spring\Samples-1\classes
[mkdir] Created dir: D:\Spring\Samples-1\classes
compile:
[javac] D:\Spring\Samples-1\build.xml:21: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 10 source files to D:\Spring\Samples-1\classes
[javac] javac: -g:lines, vars, sourceは無効なフラグです
[javac] 使用方法: javac <options> <source files>
[javac] 使用可能なオプションのリストについては、-helpを使用します
BUILD FAILED
D:\Spring\Samples-1\build.xml:21: Compile failed; see the compiler error output for details.
Total time: 0 seconds
以前の記事では、
と乱暴にコメントアウトしていたが、どうやら以下のように変更するだけで動く模様。
<javac destdir="${classes.dir}" debug="on" debuglevel="lines,vars,source">
または
<javac destdir="${classes.dir}" debug="off" debuglevel="lines, vars, source">
前者は、「lines, vars, source」の中にある半角スペースを削除するという方法で、後者は「debug="off"」にするという方法。いずれも同様な結果が得られ、[java][/java] Hello, Spring!と出力される。
なお、本文中にも記載があるが、「warning: 'includeantruntime' was not set」という警告は無視しても問題なく動作する。どうしても気になる場合は以下のようにする。
<javac includeAntRuntime="false" destdir="${classes.dir}" debug="on" debuglevel="lines,vars,source">
すると
ant run.sample1
Buildfile: D:\Spring\Samples-1\build.xml
init:
[delete] Deleting directory D:\Spring\Samples-1\classes
[mkdir] Created dir: D:\Spring\Samples-1\classes
compile:
[javac] Compiling 10 source files to D:\Spring\Samples-1\classes
run.sample1:
[java] Hello, Spring!
BUILD SUCCESSFUL
Total time: 1 second
このように警告も消え、きれいな結果が得られる。