0

RCP アプリケーションを構築しています。プラグイン プロジェクトが 1 つしかなく、製品としてエクスポートしようとしています。私はsqliteデータベースファイルを使用しています。アプリケーションと Run of Eclipse の製品の両方をまったく問題なくテストしていますが、製品をエクスポートすると、データベース アクセスが失敗します。これは、データベース接続を開く方法です

dbConnection = DriverManager.getConnection("jdbc:sqlite:"+FileLocator.resolve(Platform.getBundle("BundleID").getEntry("dbFile")).getPath());

私の dbFile はプロジェクトのルート ファイルにあり、エクスポート後、プラグイン フォルダーの BundleID.jar にあるため、計算されたパスが次のようになるため、アプリケーションはそれを開くことができません.... "/plugins/BundleId .jar!/dbFile"

「!」/ が文字列の前に!!!

これを克服するために私にできることはありますか?

4

1 に答える 1

1

より通常の URL を取得するには、によって返された で使用FileLocator.toFileURL()します。URLFileLocator.resolve()

注: これにより、通常のファイル URL を返すことができるように、jar が一時キャッシュに展開されます。このキャッシュは永続的であることが保証されていないため、データベースの変更を永続化したい場合は、データベースを別の場所に配置する必要があります。

1 つの可能性は、データベースをプラグイン状態データのワークスペース .metadata にコピーすることです ( Platform.getStateLocation(bundle).

于 2013-10-07T18:59:40.850 に答える