jdk1.2.2면은 /usr/local/jdk/lib/classes.zip가 아니라
/usr/local/jdk/lib/tools.jar아닌가요?
그리고 805버젼에서 jdk1.2X 버젼을 지원하는지 모르겠군요.
많이 도움을 못드려서 죄송 ^^
>>서현수 님께서 쓰시길<<
:: 한글이 계속 깨져서 결국엔 thin Driver대신에 OCI Driver를 썻습니다
::
:: (NLS_*와 모든 CARACTER_SET을 제대로 했는데도 말이죠^^, 참고로 oracle8.0.5, jdk1.2.2, jakarta-tom
:: cat, linux입니다)
::
:: OCI로 하니까 한글은 정상적으로 나오는군요
::
:: ResultRet은 new String( zip_code.getBytes("KSC5601"), "8859_1");
::
:: 로 했습니다.
::
:: (DB에 넣을때는 반대로 new String( SQL2.getBytes("8859_1"), "KSC5601"); 했구요..)
::
:: 쨋던 한글은 제대로 읽고 쓸수 있는데...
::
:: 문제는 라이브러리가 링크가 안되고 있습니다.
::
:: .bash_profile에 아래와 같이 넣었습니다.
::
:: export USERNAME BASH_ENV PATH
:: export PATH=/usr/local/jdk/bin:$PATH
:: #for jdk1.2.2
:: #export CLASSPATH=.:/usr/local/jdk/lib/tools.jar:/usr/local/jdk/lib/dt.jar
:: #for ibm jdk
:: export CLASSPATH=.:/usr/local/jdk/lib/classes.zip
:: export PATH=.:/usr/local/JSDK/bin:$PATH
::
:: # Oracle Environment Setup
:: export ORACLE_HOME=/home/oracle/app/oracle/product/8.0.5
:: export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
:: export NLS_TERRITORY=korea
:: export PATH=$PATH:$ORACLE_HOME/bin
:: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
:: export ORACLE_SID=WISBOT
:: export ULIMIT=2113674
:: export ORACLE_OWNER=oracle
::
:: export CLASSPATH=$CLASSPATH:$ORACLE_HOME/jdbc/lib/classes111.zip
:: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/jdbc/lib
::
:: 그런데 위의 유저로 로긴해서 java test하면 정상적으로 결과가 나오는데
::
:: 다른유저(.bash_profile에 설정이 없는 유저) 로 로긴해서 su 유저(.bash_profile에 설정이 있는 유저)
:: 한 다음에 java test 하면 아래와 같은 에러가 나옵니다.
::
::
:: Exception in thread "main" java.lang.UnsatisfiedLinkError: no oci805jdbc in java
:: .library.path
:: at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1245)
:: at java.lang.Runtime.loadLibrary0(Runtime.java:466)
:: at java.lang.System.loadLibrary(System.java:774)
:: at oracle.jdbc.oci7.OCIDBAccess.logon(OCIDBAccess.java:142)
:: at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:103)
:: at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:148)
:: at java.sql.DriverManager.getConnection(DriverManager.java:453)
:: at java.sql.DriverManager.getConnection(DriverManager.java:133)
:: at test.main(test.java:123)
::
::
:: 그래서,
::
:: Properties props = System.getProperties();
:: //USERNAME BASH_ENV PATH
:: props.put("PATH","/usr/local/jdk/bin:$PATH");
:: //#for jdk1.2.2
:: //#export CLASSPATH=.:/usr/local/jdk/lib/tools.jar:/usr/local/jdk/lib/dt.jar
:: //#for ibm jdk
:: props.put("CLASSPATH",".:/usr/local/jdk/lib/classes.zip");
:: props.put("PATH",".:/usr/local/JSDK/bin:$PATH");
::
:: //# Oracle Environment Setup
:: props.put("ORACLE_HOME","/home/oracle/app/oracle/product/8.0.5");
:: props.put("NLS_LANG","AMERICAN_AMERICA.KO16KSC5601");
:: props.put("NLS_TERRITORY","korea");
:: props.put("PATH","$PATH:$ORACLE_HOME/bin");
:: props.put("LD_LIBRARY_PATH","$LD_LIBRARY_PATH:$ORACLE_HOME/lib");
:: props.put("ORACLE_SID","WISBOT");
:: props.put("ULIMIT","2113674");
:: props.put("ORACLE_OWNER","oracle");
::
:: props.put("CLASSPATH","$CLASSPATH:$ORACLE_HOME/jdbc/lib/classes111.zip");
:: props.put("LD_LIBRARY_PATH","$LD_LIBRARY_PATH:$ORACLE_HOME/jdbc/lib");
::
::
:: 로 Environment를 다 넣어 줬거든요..
::
:: 그런데도 에러는 똑같이 나오는군요
::
:: 그래서 System.out.println(props);를 찍어서 실행 될때와 안될때를 비교 해 봤더니
::
:: java.library.path=동일한설정들:/home/oracle/app/oracle/product/8.0.5/lib:/home/oracle/app/oracle
:: /product/8.0.5/jdbc/lib
::
:: 이 부분이 다르더군요....
::
:: 제가 보기에는 /home/oracle/app/oracle/product/8.0.5/lib 이부분 인 것 같은데
::
:: 이 디렉토리에는 여러가지 라이브러리들이 많이 있습니다.
::
:: 이 파일들을 모두 path가 잡혀 있는 다른 디렉토리에 넣어 줄수두 없구...참..
::
:: java.library.path를 어디서 설정해 줘야 하는거죠?
::
:: .bash_profile에 보면
::
:: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
::
:: 이 부분을 주석으로 막으면 동일한 에러가 떨어지는 것으로 봐선 이부분인 것 같긴 한데...말이죠..
|