Требования конечных пользователей для Java DB

когда я искал простую встроенную базу данных с поддержкой JPA для использования в настольном приложении Java, я обнаружил, что Apache Derby / Java DB — довольно распространенный способ делать такие вещи.

Я уже обнаружил, что Java DB по умолчанию поставляется с каждой установкой JRE/JDK, начиная с версии 1.6.

Но при переходе к учебникам есть довольно много шагов для установки derby...

Игнорируя эти шаги и просто пытаясь что-то вроде:

public class Main {
  public static void main(String[] args) throws ClassNotFoundException {
    Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
  }
}

Выдается следующее исключение:

Exception in thread "main" java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver

Это подводит меня к моему вопросу:

Нужно ли мне, чтобы конечный пользователь устанавливал какие-либо переменные среды или что-то в этом роде? Если я хочу отправить только один JAR (или хотя бы одну папку, содержащую все что нужно для запуска моего настольного приложения) является ли дерби по-прежнему правильным, чтобы узнать больше, или это тупик, и я должен искать SQLite-Libs или что-то в этом роде?


person Gundon    schedule 10.08.2012    source источник


Ответы (1)


Вам не нужны никакие переменные среды, если вы включаете вызов метода, который вы дали. Однако вам необходимо убедиться, что драйверы JDBC находятся в вашем пути к классам. Самый простой способ сделать это — установить путь к классам в файле манифеста JAR.

Недавно я задал вопрос, связанный с . и был направлен на проверку H2 и HSQLDB. В настоящее время я работаю с HSQLDB, и, похоже, он соответствует моим потребностям, которые очень похожи на ваши. Надеюсь, это поможет!

person Code-Apprentice    schedule 10.08.2012
comment
Спасибо за этот намек! Поскольку кто-то может ответить на мой вопрос, связанный с дерби, или объяснить мне, почему просто «включение» класса не работает, я пока оставляю ваш ответ не отмеченным и добавляю галочку, если другого ответа не будет. - person Gundon; 11.08.2012
comment
Голосование было бы здорово. Я, конечно, понимаю, что не отмечаю мой ответ, так как я действительно не ответил на ваш вопрос. - person Code-Apprentice; 11.08.2012
comment
Также я добавил еще немного к своему ответу, который, надеюсь, ответит на ваши вопросы о сообщении об ошибке, которое у вас есть. - person Code-Apprentice; 11.08.2012
comment
Я думаю, что это именно та подсказка, которая решает весь вопрос: Нет, пользователю больше ничего не нужно ^^' Большое спасибо - person Gundon; 11.08.2012