postgresql - Problemer med installation af 'sqlj' skema ved hjælp af pljava i postgres 9.3 for windows 7

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at installere Postgres 9.3.16 på Windows7 (64 bit operativsystem). Mens du installerer sqlj-skema ved hjælp af pljava og følgende kommando:


java -cp "C:SoftwaresPostgreSQL9.3sharepljavadeploy.jar;C:SoftwarespgJDBCpostgresql-42.0.0.jar" org.postgresql.pljava.deploy.Deployer -install -user postgres -database sampledb -password xyz


Jeg fik denne JDBC krukke fra Stackbuilder JDBC driver download.


Jeg fik denne fejl, mens jeg kørte kommandoen ovenfor med kommandoprompt:


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)


Også min sti-variabel er:


C:WindowsSystem32WindowsPowerShell;C:Windows;C:WindowsSystem32wbem;C:SoftwaresPostgreSQL9.3share;C:SoftwaresPostgreSQL9.3lib;C:WindowsSystem32;C:SoftwaresPostgreSQL9.3in;C:Program Files
Javajdk1.8.0\_121in;C:Program FilesJavajdk1.8.0\_121jrein; C:Program FilesJavajdk1.8.0\_121jreinserver;C:Program FilesInteliCLS Client;C:Program Files (x86)InteliCLS Client;C:Program Files
Internet Explorer;C:Program FilesJavajdk1.8.0\_121in;C:Program FilesJavajdk1.8.0\_121jrein; C:Program FilesJavajdk1.8.0\_121jreinserver; C:Program FilesJavajdk1.8.0\_121; C:Program FilesJav
jdk1.8.0\_121jre


Jeg har brugt afhængighedsvalker, og det rapporterer, at følgende filer mangler:


 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


Jeg har forsøgt at gøre alt muligt, men ikke i stand til at løse det. Jeg bemærkede dog, at Windows bruger backslash '\' som Path-separator, mens fejlmeddelelsen den vej, den forsøger at søge efter, bruger fremadrettet skråstreg '/'.


Kunne dette være problemet? Kan nogen hjælpe mig med at løse dette?

Bedste reference


Efter at have kæmpet et stykke tid, arbejdede det endelig med følgende løsning:


Jeg tilføjede min pljava.dll sti til min PATH-variabel, dvs.


C: \ Software \ PostgreSQL \ 9.3 \ share i PATH variabel.


Også, jeg ændrede og tilføjede følgende variabel i min postgresql.conf:


dynamic\_library\_path='C: \ Softwares \ PostgreSQL \ 9,3 \ share \ pljava'


Derefter blev mit sqlj-skema befolket normalt.

Andre referencer 1


Jeg spekulerer på, hvilken version af PL/Java du forsøgte at installere? Den gamle procedure med Deployer er lidt forældet. Du har PostgreSQL 9.3.x, så den har kommandoen CREATE EXTENSION. Hvis du bygger eller henter en krukke med PL/Java 1.5.0, kører du bare det (med java -jar jarname ) ... bare sørg for, at mappen med pg\_config er på din PATH, når du gør det, viser jarinstallatøren resten. I psql så sig CREATE EXTENSION pljava;


Du skal muligvis indstille en variabel for at fortælle den, hvor din Java runtime er installeret. Installationsvejledningen indeholder detaljerne. [12]