これもトラブルとはいえませんが、今回、Vine3.2上でプログラムを作成しようとしていますが、使用する時はLinux、Windows両方の環境を考えています。そのため、hsqldbのファイルをどこに置くかということが問題になります。LinuxとWindowsではパス指定の表記方法がことなりますから、ファイル名だけでパスを指定しない方法が良いです。
Eclipse自身もそうですが、特定のフォルダーでなくどこに置いても動作するという仕様がベストです。そうなると、使用するhsqldbのデータはプログラム本体と同じホルダー(カレントディレクトリ)に置いておけば良いということになります。
hsqldb を接続する際、
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:testdb","sa","")
と指定しますが、このパス指定のない"testdb"の部分はカレントディレクトリに置かれたtestdbということです。
Eclipseのカレントディレクトリはどこか? これがよくわかりませんでした。Eclipseでは作業領域のディレクトリは次のような階層構造になっています。
workspace
project
package
また、package名は正式にはドメイン名を使用することが推奨されています。
ピアソン・エデュケーション「プログラミング言語JAVA」に「一意なパッケージ名を保証する良い方法は、インターネットドメイン名を使用することです。」となっています。たとえばGoogleのドメイン名google.co.jpならパッケージ名はjp.co.googleとなりますが、パッケージ名をこうきめると、project以下のディレクトリ構造は
/jp/co/google
となります。ワークスペースをホームディレクトリに置くとフルパスでは
/home/namae/workspace/project/jp/co/google
になり、クラス等のファイルはgoogleディレクトリに入ります。これは少し深すぎると思います。世界中のパッケージ名との重複を気にする必要がどの程度あるのでしょうか? ほとんどないです。だから今回はあっさり、
/home/namae/workspace/project/package
としました。
さて、packegeにあるクラスからみてカレントディレクトリはどこになるかということですが、これは
/home/namae/workspace/project
でした。ここにhsqldbのファイルを作成しておけば、
jdbc:hsqldb:file:testdb
でConnectionできます。また、これはWindowsXPでも動作確認しました。
また、これはぐちゃぐちゃやっていてわかったのですが、クラスファイルがある
/home/namae/workspace/project/package
以下のpackage内のファイルを直接、移動したり削除したりしていました。eclipseを使用する時、これはやってはいけないということがわかりました。package内に取り込みたいのなら、Eclipseのパケージエクスプロラーにドラッグしなければなりません。また、一端、Eclipseに登録したリソースはEclipseで解放した後、削除なり移動します。
Eclipse自身もそうですが、特定のフォルダーでなくどこに置いても動作するという仕様がベストです。そうなると、使用するhsqldbのデータはプログラム本体と同じホルダー(カレントディレクトリ)に置いておけば良いということになります。
hsqldb を接続する際、
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:testdb","sa","")
と指定しますが、このパス指定のない"testdb"の部分はカレントディレクトリに置かれたtestdbということです。
Eclipseのカレントディレクトリはどこか? これがよくわかりませんでした。Eclipseでは作業領域のディレクトリは次のような階層構造になっています。
workspace
project
package
また、package名は正式にはドメイン名を使用することが推奨されています。
ピアソン・エデュケーション「プログラミング言語JAVA」に「一意なパッケージ名を保証する良い方法は、インターネットドメイン名を使用することです。」となっています。たとえばGoogleのドメイン名google.co.jpならパッケージ名はjp.co.googleとなりますが、パッケージ名をこうきめると、project以下のディレクトリ構造は
/jp/co/google
となります。ワークスペースをホームディレクトリに置くとフルパスでは
/home/namae/workspace/project/jp/co/google
になり、クラス等のファイルはgoogleディレクトリに入ります。これは少し深すぎると思います。世界中のパッケージ名との重複を気にする必要がどの程度あるのでしょうか? ほとんどないです。だから今回はあっさり、
/home/namae/workspace/project/package
としました。
さて、packegeにあるクラスからみてカレントディレクトリはどこになるかということですが、これは
/home/namae/workspace/project
でした。ここにhsqldbのファイルを作成しておけば、
jdbc:hsqldb:file:testdb
でConnectionできます。また、これはWindowsXPでも動作確認しました。
また、これはぐちゃぐちゃやっていてわかったのですが、クラスファイルがある
/home/namae/workspace/project/package
以下のpackage内のファイルを直接、移動したり削除したりしていました。eclipseを使用する時、これはやってはいけないということがわかりました。package内に取り込みたいのなら、Eclipseのパケージエクスプロラーにドラッグしなければなりません。また、一端、Eclipseに登録したリソースはEclipseで解放した後、削除なり移動します。