问题
When I try to run Java application, I receive the following error:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc9 in java.library.path
I don't have a file ocijdbc9.*
on my PC, but I have ocijdbc10.dll
in %ORACLE_HOME%\bin
.
%ORACLE_HOME%
is correctly specified, so I think the problem is that the application is searching for the wrong version (9 instead of 10).
Both Oracle and Java Builder are freshly installed, so the problem may be in project preferences? Do you have any ideas on how to search for the place where the wrong version is specified?
回答1:
You're missing a file from your java CLASSPATH.
You need to add the OCI jar to your classpath.
For my oracle 10.0.2 install on windows it's located in
%ORACLE_HOME%\jdbc\lib\ojdbc14.jar
If your application requires ocijdbc9 then you'll have to download it from somewhere and add it to the CLASSPATH. I don't know where to download it from, try the oracle site
回答2:
an additional tip: if you're using oci jdbc urls; it is always better to use the jar library of your oracle client version.
please check this address for these libraries: http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html
for example if your client is Oracle 10.2.0.4, then you'd better use this client's ojdbc14.jar
for java >= 1.4 and classes12.jar
for java <= 1.3
note that until Oracle 11, jdbc libraries have the same names in every version such as ojdbc14.jar
and classes12.jar
.
回答3:
You need to pass -Djava.library.path=YOUR_ORACLE_HOME\bin
to the JRE as a runtime parameter
So....
java [other java switches + runtime parameters] -Djava.library.path=YOUR_ORACLE_HOME\bin run-classname
回答4:
I think it is because you have not yet installed Oracle Client. After installing it, maybe it is ok
来源:https://stackoverflow.com/questions/919921/no-ocijdbc9-in-java-library-path