Проблемы при установке схемы "sqlj" с использованием pljava в postgres 9.3 для Windows 7

Я пытаюсь установить Postgres 9.3.16 на Windows7 (64-разрядная операционная система). При установке схемы sqlj с помощью pljava и следующей команды:

java -cp "C:\Softwares\PostgreSQL\9.3\share\pljava\deploy.jar;C:\Softwares\pgJDBC\postgresql-42.0.0.jar" org.postgresql.pljava.deploy.Deployer -install -user postgres -database sampledb -password xyz

Я получил этот JDBC-файл из драйвера JDBC для стилевого компоновщика.

Я получил эту ошибку при запуске вышеуказанной команды с командной строкой:

org.postgresql.util.PSQLException: ERROR: could not load library "C:/Softwares/PostgreSQL/9.3/lib/pljava.dll": The specified module could not be found.

        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2412)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2125)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:297)
        at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)
        at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
        at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:301)
        at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:287)
        at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:264)
        at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:260)
        at org.postgresql.pljava.deploy.Deployer.initJavaHandlers(Deployer.java:485)
        at org.postgresql.pljava.deploy.Deployer.main(Deployer.java:275)

Также моя переменная Path:

C:\Windows\System32\WindowsPowerShell;C:\Windows;C:\Windows\System32\wbem;C:\Softwares\PostgreSQL\9.3\share;C:\Softwares\PostgreSQL\9.3\lib;C:\Windows\System32;C:\Softwares\PostgreSQL\9.3\bin;C:\Program Files
Java\jdk1.8.0_121\bin;C:\Program Files\Java\jdk1.8.0_121\jre\bin; C:\Program Files\Java\jdk1.8.0_121\jre\bin\server;C:\Program Files\Intel\iCLS Client;C:\Program Files (x86)\Intel\iCLS Client;C:\Program Files
Internet Explorer;C:\Program Files\Java\jdk1.8.0_121\bin;C:\Program Files\Java\jdk1.8.0_121\jre\bin; C:\Program Files\Java\jdk1.8.0_121\jre\bin\server; C:\Program Files\Java\jdk1.8.0_121; C:\Program Files\Jav
\jdk1.8.0_121\jre

Я использовал обходчик зависимостей, и он сообщает об отсутствии следующих файлов:

 API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
 API-MS-WIN-CORE-WINRT-L1-1-0.DLL
 API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
 API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL

Я пытался сделать все возможное, но не смог решить. Однако я заметил, что Windows использует обратную косую черту '\' в качестве разделителя пути, а в сообщении об ошибке путь, который она пытается найти, использует прямую косую черту '/' .

Может ли это быть проблемой? Может ли кто-нибудь помочь мне в решении этой проблемы?

2 ответа

Решение

После недолгих попыток, наконец-то это сработало со следующим исправлением:

Я добавил мой путь pljava.dll к моей переменной PATH, т.е.

C: \ Softwares \ PostgreSQL \ 9.3 \ share в переменной PATH.

Кроме того, я изменил и добавил следующую переменную в свой postgresql.conf:

dynamic_library_path = 'C: \ Softwares \ PostgreSQL \ 9.3 \ доля \pljava'

После этого моя sqlj схема была заполнена нормально.

Интересно, какую версию PL/Java вы пытались установить? Старая процедура с Deployer немного устарел. У вас есть PostgreSQL 9.3.x, поэтому он имеет CREATE EXTENSION команда. Если вы соберете или получите jar PL/Java 1.5.0, все, что вам нужно сделать, это запустить java -jarjarname)... просто убедитесь, что каталог, содержащий pg_config на вашем PATH когда вы это сделаете, установщик фляги выяснит остальное. В psql тогда просто скажи CREATE EXTENSION pljava;

Возможно, вам придется установить переменную, чтобы указать, где установлена ​​ваша среда выполнения Java. В инструкции по установке есть детали.

Другие вопросы по тегам