[seasar-dotnet:1989] Re: DBFlute: 実行に必要なのはJRE?JDK?

Junichi Ito [E-MAIL ADDRESS DELETED]
2011年 3月 25日 (金) 14:30:52 JST


久保さん

返信ありがとうございます。
えっと、結論から申し上げますと、tools.jarは実行に必須ではないようです。
以下詳細です(長文すみません)。

まず、昨日から今日にかけて起こったことを時系列にまとめてみます。

* * * * * * * * * * * * * * *
<昨日>
1.
Replace Schemaを実行
=> "Unable to locate tools.jar. Expected to find it in C:\Program
Files\Java\jre1.5.0_11\lib\tools.jar"の
メッセージとともに、BUILED FAILEDとなった
(ログは最後に添付)

2.
tools.jarがないことがエラー原因と推測
=> tools.jarを入手し、"C:\Program Files\Java\jre1.5.0_11\lib"にコピー

3.
"Unable to locate tools.jar."のメッセージはなくなったが、再びBUILED FAILEDとなる
=> "java.lang.UnsupportedClassVersionError: Bad version number in .class file"の
メッセージが出ていたが、実はこのメッセージは上記1の時点でも出ていた。
(ログは最後に添付)

4.
sqljdbc4.jarのMANIFEST.MFを確認すると「Created-By: 1.5.0_15-b04
(Sun Microsystems Inc.)」とあり、JREのバージョン(=build 1.5.0_11-b03)より
新しいことが原因ではないかと推測
=> バージョン1.2のsqljdbc.jarファイルを入手し、extlibフォルダにコピー

5.
今度は「警告: Failed to load the sqljdbc_auth.dll」
「このドライバは、統合認証を行えるようには構成されていません。」という
メッセージが表示されたので、ユーザー名とパスワードを指定する方法に変更。

6.
Drop Tableの継続エラー問題などを解決し、ようやく「BUILD SUCCESSFUL」となる。


<今日>
7.
エラー再現を再現させるため、tools.jarをtools.jar.bakにリネームし、Replace Schemaを実行。
=> "Unable to locate tools.jar."のメッセージは表示されるが、
「BUILD SUCCESSFUL」となる。(あれれ???)
(ログは最後に添付)

8.
jdbc.bat, generate.batともに"Unable to locate tools.jar."のメッセージは表示されるが、
「BUILD SUCCESSFUL」となる。
* * * * * * * * * * * * * * *

つまり、7, 8の結果から"Unable to locate tools.jar."は警告表示らしいが、実行には
問題ないと推測されます。

最初の投稿ではtools.jarがないからBUILED FAILEDとなった、と書きましたが、
改めてログを見てみると、原因は別の問題(JDBCドライバのバージョン)だったようです。

警告表示が出るのは気持ち悪いですが、JDKが必須かというと、そうではないと思われます。
どうもお騒がせして申し訳ありませんでした。

なお、参考情報として1, 3, 7のログを添付しておきます。

伊藤

* * * * * * * * * * * * * * *
1のログ

Database will be initialized. Are you ready? (y or n) y
.\extlib\extlib へのショートカット.lnk
.\extlib\sqljdbc4.jar
.\extlib\_readme.txt
3 個のファイルをコピーしました
Unable to locate tools.jar. Expected to find it in C:\Program
Files\Java\jre1.5.0_11\lib\tools.jar
Buildfile: ..\..\..\tools\dbflute-0.8.9.25\build-torque.xml

replace-schema:
     [echo] +-----------------------------------------------+
     [echo] |                                               |
     [echo] | Replace-Schema !                              |
     [echo] |                                               |
     [echo] +-----------------------------------------------+
[df-create-schema] 18:40:02,541 ERROR [main]
org.seasar.dbflute.logic.DfDBFluteTaskUtil - Look! Read the message
below.
[df-create-schema] /* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * ** * * *
[df-create-schema] Failed to execute DBFlute Task 'ReplaceSchema'.
[df-create-schema]
[df-create-schema] [Advice]
[df-create-schema] Check the exception messages and the stack traces.
[df-create-schema] * * * * * * * * * */
[df-create-schema] java.lang.UnsupportedClassVersionError: Bad version
number in .class file
[df-create-schema]      at java.lang.ClassLoader.defineClass1(Native Method)
[df-create-schema]      at java.lang.ClassLoader.defineClass(Unknown Source)
[df-create-schema]      at
org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1130)
[df-create-schema]      at
org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1307)
[df-create-schema]      at
org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1371)
[df-create-schema]      at
org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1324)
[df-create-schema]      at
org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1072)
[df-create-schema]      at java.lang.ClassLoader.loadClass(Unknown Source)
[df-create-schema]      at
java.lang.ClassLoader.loadClassInternal(Unknown Source)
[df-create-schema]      at java.lang.Class.forName0(Native Method)
[df-create-schema]      at java.lang.Class.forName(Unknown Source)
[df-create-schema]      at
org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.newDriver(DfDataSourceHandler.java:186)
[df-create-schema]      at
org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.createConnection(DfDataSourceHandler.java:152)
[df-create-schema]      at
org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.processCachedConnection(DfDataSourceHandler.java:144)
[df-create-schema]      at
org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.getConnection(DfDataSourceHandler.java:133)
[df-create-schema]      at
org.seasar.dbflute.helper.jdbc.connection.DfSimpleDataSource.getConnection(DfSimpleDataSource.java:23)
[df-create-schema]      at
org.seasar.dbflute.logic.jdbc.connection.DfCurrentSchemaConnector.connectSchema(DfCurrentSchemaConnector.java:52)
[df-create-schema]      at
org.seasar.dbflute.task.bs.DfAbstractTask.connectSchema(DfAbstractTask.java:363)
[df-create-schema]      at
org.seasar.dbflute.task.bs.DfAbstractTask.setupDataSource(DfAbstractTask.java:341)
[df-create-schema]      at
org.seasar.dbflute.task.replaceschema.DfCreateSchemaTask.setupDataSource(DfCreateSchemaTask.java:63)
[df-create-schema]      at
org.seasar.dbflute.task.bs.DfAbstractTask.execute(DfAbstractTask.java:90)
[df-create-schema]      at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[df-create-schema]      at
sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
[df-create-schema]      at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[df-create-schema]      at java.lang.reflect.Method.invoke(Unknown Source)
[df-create-schema]      at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[df-create-schema]      at org.apache.tools.ant.Task.perform(Task.java:348)
[df-create-schema]      at org.apache.tools.ant.Target.execute(Target.java:357)
[df-create-schema]      at
org.apache.tools.ant.Target.performTasks(Target.java:385)
[df-create-schema]      at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
[df-create-schema]      at
org.apache.tools.ant.Project.executeTarget(Project.java:1298)
[df-create-schema]      at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[df-create-schema]      at
org.apache.tools.ant.Project.executeTargets(Project.java:1181)
[df-create-schema]      at org.apache.tools.ant.Main.runBuild(Main.java:698)
[df-create-schema]      at org.apache.tools.ant.Main.startAnt(Main.java:199)
[df-create-schema]      at
org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
[df-create-schema]      at
org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

BUILD FAILED
C:\〜\dbflute-0.8.9.25\build-torque.xml:224: org.seasar.dbf
lute.exception.DfDBFluteTaskFailureException:
/* * * * * * * * * * * * * * * * * * * * * * *
Failed to execute DBFlute task: ReplaceSchema
Look at the log: console or dbflute.log
* * * * * * * * * */

Total time: 2 seconds
続行するには何かキーを押してください . . .


* * * * * * * * * * * * * * *
3のログ
※"Unable to locate tools.jar."のメッセージが消えた以外は同じ

Database will be initialized. Are you ready? (y or n) y
.\extlib\extlib へのショートカット.lnk
.\extlib\sqljdbc4.jar
.\extlib\tools.jar
.\extlib\_readme.txt
4 個のファイルをコピーしました
Buildfile: ..\..\..\tools\dbflute-0.8.9.25\build-torque.xml

replace-schema:
     [echo] +-----------------------------------------------+
     [echo] |                                               |
     [echo] | Replace-Schema !                              |
     [echo] |                                               |
     [echo] +-----------------------------------------------+
[df-create-schema] 18:51:48,921 ERROR [main]
org.seasar.dbflute.logic.DfDBFluteTaskUtil - Look! Read the message
below.
[df-create-schema] /* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * ** * * *
[df-create-schema] Failed to execute DBFlute Task 'ReplaceSchema'.
[df-create-schema]
[df-create-schema] [Advice]
[df-create-schema] Check the exception messages and the stack traces.
[df-create-schema] * * * * * * * * * */
[df-create-schema] java.lang.UnsupportedClassVersionError: Bad version
number in .class file
[df-create-schema]      at java.lang.ClassLoader.defineClass1(Native Method)
[df-create-schema]      at java.lang.ClassLoader.defineClass(Unknown Source)
[df-create-schema]      at
org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1130)
[df-create-schema]      at
org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1307)
[df-create-schema]      at
org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1371)
[df-create-schema]      at
org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1324)
[df-create-schema]      at
org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1072)
[df-create-schema]      at java.lang.ClassLoader.loadClass(Unknown Source)
[df-create-schema]      at
java.lang.ClassLoader.loadClassInternal(Unknown Source)
[df-create-schema]      at java.lang.Class.forName0(Native Method)
[df-create-schema]      at java.lang.Class.forName(Unknown Source)
[df-create-schema]      at
org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.newDriver(DfDataSourceHandler.java:186)
[df-create-schema]      at
org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.createConnection(DfDataSourceHandler.java:152)
[df-create-schema]      at
org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.processCachedConnection(DfDataSourceHandler.java:144)
[df-create-schema]      at
org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.getConnection(DfDataSourceHandler.java:133)
[df-create-schema]      at
org.seasar.dbflute.helper.jdbc.connection.DfSimpleDataSource.getConnection(DfSimpleDataSource.java:23)
[df-create-schema]      at
org.seasar.dbflute.logic.jdbc.connection.DfCurrentSchemaConnector.connectSchema(DfCurrentSchemaConnector.java:52)
[df-create-schema]      at
org.seasar.dbflute.task.bs.DfAbstractTask.connectSchema(DfAbstractTask.java:363)
[df-create-schema]      at
org.seasar.dbflute.task.bs.DfAbstractTask.setupDataSource(DfAbstractTask.java:341)
[df-create-schema]      at
org.seasar.dbflute.task.replaceschema.DfCreateSchemaTask.setupDataSource(DfCreateSchemaTask.java:63)
[df-create-schema]      at
org.seasar.dbflute.task.bs.DfAbstractTask.execute(DfAbstractTask.java:90)
[df-create-schema]      at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[df-create-schema]      at
sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
[df-create-schema]      at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[df-create-schema]      at java.lang.reflect.Method.invoke(Unknown Source)
[df-create-schema]      at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[df-create-schema]      at org.apache.tools.ant.Task.perform(Task.java:348)
[df-create-schema]      at org.apache.tools.ant.Target.execute(Target.java:357)
[df-create-schema]      at
org.apache.tools.ant.Target.performTasks(Target.java:385)
[df-create-schema]      at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
[df-create-schema]      at
org.apache.tools.ant.Project.executeTarget(Project.java:1298)
[df-create-schema]      at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[df-create-schema]      at
org.apache.tools.ant.Project.executeTargets(Project.java:1181)
[df-create-schema]      at org.apache.tools.ant.Main.runBuild(Main.java:698)
[df-create-schema]      at org.apache.tools.ant.Main.startAnt(Main.java:199)
[df-create-schema]      at
org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
[df-create-schema]      at
org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

BUILD FAILED
C:\〜\dbflute-0.8.9.25\build-torque.xml:224: org.seasar.dbf
lute.exception.DfDBFluteTaskFailureException:
/* * * * * * * * * * * * * * * * * * * * * * *
Failed to execute DBFlute task: ReplaceSchema
Look at the log: console or dbflute.log
* * * * * * * * * */

Total time: 1 second
続行するには何かキーを押してください . . .


* * * * * * * * * * * * * * *
7のログ
※"Unable to locate tools.jar."のメッセージは出ているが、ビルドは成功する。

Database will be initialized. Are you ready? (y or n) y
.\extlib\sqljdbc.jar
.\extlib\_readme.txt
2 個のファイルをコピーしました
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.5.
0_11\lib\tools.jar
Buildfile: ..\..\..\tools\dbflute-0.8.9.25\build-torque.xml

replace-schema:
     [echo] +-----------------------------------------------+
     [echo] |                                               |
     [echo] | Replace-Schema !                              |
     [echo] |                                               |
     [echo] +-----------------------------------------------+

BUILD SUCCESSFUL
Total time: 5 seconds
続行するには何かキーを押してください . . .


seasar-dotnet メーリングリストの案内