0
過去数日間は、私のjarファイルでアクセスするためにDerbyデータベースを取得しようとしていました。ここに私の接続クラスは次のようになります。すべてが私は日食にいるときに、予想通り、私のプログラムが実行される作品 組み込みDBをJARファイル
:
import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;
public class DBConnection
{
public static final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
public static final String JDBC_URL = "jdbc:derby:EmployeeInfo";
public static Connection dbConnector()
{
try
{
Class.forName(DRIVER).newInstance();
Connection conn = DriverManager.getConnection(JDBC_URL);
JOptionPane.showMessageDialog(null, "Connection successfull");
return conn;
}catch(Exception e)
{
JOptionPane.showMessageDialog(null, e);
return null;
}
}
}
はまた、ここのように私のプロジェクトエクスプローラが見えるもののスクリーンショットです私のGUIはデータベースを更新します。しかし、私のプログラムをjarファイルにすると、データベースEmployeeInfo(注:Database.jarはEmployeeInfoデータベース)が見つかりません。一つの最後のことは、別のマシン上でjarファイルを試してみると、データベースを見つけることができないということです。
これが修正されている理由を探るのは素晴らしいことです! -Thanks、 Aaron :)
すべての.jarファイルエントリは読み取り専用とみなされます。エントリを変更する場合は、一時ファイルにコピーしてそのファイルを変更します。 – VGR
一時ファイルを言うと、それはどういう意味ですか? – Aaron
プログラムを1回実行するだけで変更されたデータベースが必要な場合は、Class.getResourceAsStreamからFiles.createTempFileで作成したファイルにデータベースをコピーできます。データベースへの変更を永続的にする必要がある場合は、System.getProperty( "user.home")のようにファイルの一貫性のある場所を選択します。 – VGR