Запуск java-программы в терминале linux с путем -class - PullRequest
3 голосов
/ 29 декабря 2010

В течение часа я пытался запустить следующую программу с использованием пути к классу postgresql

class Test{
  public static void main(String[] args){
        try {
            Class.forName("org.postgresql.Driver");
        } catch (ClassNotFoundException cnfe) {
            System.err.println("Couldn't find Postgresql driver class!");
        }
  }
}

Программа отлично скомпилирована с помощью команды javac, но мне трудно запустить ее с помощью пути к классам postgresql. У меня "postgresql-9.0-801.jdbc4.jar" в том же каталоге, что и файл, и я попробовал следующее, но ни один из них не работал

java -classpath ./postgresql-9.0-801.jdbc4.jar Test
java -classpath postgresql-9.0-801.jdbc4.jar Test
java -classpath "postgresql-9.0-801.jdbc4.jar" Test

Что я делаю не так?

* * 1008 Привет! * * 1009

Ответы [ 3 ]

6 голосов
/ 29 декабря 2010

Когда вы указываете classpath, вам нужно убедиться, что он включает ВСЕ файлы классов, которые нужны вашему приложению, включая те, которые вы создаете сами. Предполагая, что Test.class находится в текущем каталоге вместе с файлом JAR postgres, вам нужно что-то вроде:

java -classpath postgresql-9.0-801.jdbc4.jar:. Test

Подробнее см. Java Glossary .

Ьт ~

3 голосов
/ 29 декабря 2010

В чем ошибка? ClassNotFoundException для Test или postgres библиотеки? Если раньше, то это потому, что вам нужно добавить Test и в ваш classpath.

Предполагая, что вы находитесь в том же каталоге, где находится Test.class и jar postgres,

java -classpath .:postgresql-9.0-801.jdbc4.jar Test
0 голосов
/ 29 декабря 2010
command :java -cp .;postgresql-9.0-801.jdbc4.jar Test

и jar, и класс находятся в одном каталоге, из которого выполняется команда Также сделайте ваше определение класса общедоступным !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...