Как можно установить соединение Java DB, которое работает на всех компьютерах Mac, чтобы его JAR установил соединение в Windows 10? - PullRequest
1 голос
/ 03 мая 2019

Я хочу сделать работающую программу, написанную на Java на Mac, доступной для пользователя Windows, но в Windows происходит сбой соединения со странным сообщением об ошибке, указывающим, что Windows ищет базу данных в C::\windows\system32.БД SQLite находится в той же папке, что и Java-программа:

Connection conn = DriverManager.getConnection("jdbc:sqlite:Databasess/Logic1.sqlite");

Я создал JAR-файл и поместил его в папку с именем Aurora, поэтому она выглядит следующим образом:

TeachingMachine
   Aurora.v2.jar
   Images
   Audio
   databases
      Logic1.sqlite
      Logic2.sqlite

Перенесите всю папку на другой Mac, и она отлично работает.Перенесите ту же папку в мой HP, работающий под управлением Windows10, и сразу же выдает ошибку, которую я скопировал с моего HP на мой Mac:

JAVA.SQL ‘SQLEXCEPTION: path to ’databases/Logic1.sqlite’: C:\windows\system32:’databases’ does not exist

Я искал просьбы о помощи относительно windows\system32, ибольшие части сообщения об ошибке.Я нашел некоторых людей, чьи вопросы включали гремлины в их коде для подключения к SQLite или другим базам данных, но пока ничего не упоминает о проблеме, которую я изложил здесь.

Существует папка для system32на моем ПК с Windows, но я пытаюсь создать единую программу, которую я могу обслуживать и распространять среди людей, работающих под управлением различных операционных систем.Было бы самоубийством копировать мои базы данных в system32.

Это тот же базовый код для подключения, который я использовал более года.Конечно, нет никаких упоминаний о system32.


        Connection conn = null;
        try {
            Class.forName("org.sqlite.JDBC");
            conn = DriverManager.getConnection("jdbc:sqlite:databases/Logic2.sqlite"); 
            return conn;
        }catch (Exception e)

Ожидаемые результаты - это то, что я получаю на любом Mac, на котором я его пробовал, и фактический результат, когда я запускаю тот же кодв Windows 10 я получаю только одно сообщение об ошибке.

1 Ответ

1 голос
/ 03 мая 2019

Проблема, с которой вы работаете, это каталог по умолчанию, используемый процессом.

В Windows он, очевидно, использует c: \ windows \ system32.

На Mac он использует папку ваших приложений.

Итак, вам нужно либо указать абсолютный путь к URL вашей базы данных, либо изменить текущий рабочий каталог для вашего приложения.

...