技術記事については、Qiitaにも稀に投稿しています。

続・SpringサンプルアプリがMac上で動作しないので試行錯誤してみた(Windows編)

0722_spring

以前、と言ってもだいぶ前の話になるけど、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

以前の記事では、

pre1

と乱暴にコメントアウトしていたが、どうやら以下のように変更するだけで動く模様。

<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

このように警告も消え、きれいな結果が得られる。