ํด๊ฒฐlang.UnsatisfiedLinkError: Native Library .์ง๋ฌธ
xxx NOT loaded java.lang.UnsatisfiedLinkError : Native Library XXX.dll already loaded in another classloader
appletB์์ appletA์ ์ ๊ทผํ๋ฉด appletA์ ์ ๊ทผํ ๋๋ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.ํ ํญ์์ ์ฌ๋ฌ ๊ฐ์ applet์ด ์ค์ ์ ์ผ๋ก ๊ฐ์ jvm์์ ์คํ๋๊ณ , ๋จ์ง applet์ ๋ถ๋ฌ์ฌ ๋ ๋ค๋ฅธclassLoader๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ค.๋ฐ๋ผ์ appletA๊ฐ ๋จผ์ ์คํ๋๋ appletB๊ฐ ๋จผ์ ์คํ๋๋ ์ต์ข ์ํฉ์ ์์กดํ๋ dll์ด ๊ฐ์ jvm์ ๋ถ๋ฌ์ค๋ฉด ์ด์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ตฌ๊ธ์ ์งํํ ํ์ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ๊ฐ์ ๋ฌธ์ ์ ๋ถ๋ชํ๋ค. ์ด๋ค ๊ฒ์ ๊ฐ์javaEE ์ฉ๊ธฐ, ์๋ฅผ ๋ค์ด (weblogic, jboss) ์ค๋ถ์ ๋ ๊ฐ์ jni ํธ์ถ ํ๋ก์ ํธ๋ฅผ ๋ฐฉ๋ฌธํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ค ๊ฒ์ ํ์์ ๊ฐ์ ๊ฒฝํ์ด๋ค.๋ง์ง๋ง ๊ฒฐ๋ก ์ ํ jvm์์ dll์ ๋ ๋ฒ ๋ถ๋ฌ์ค๋ ๊ฒ์ ํ์ฉํ์ง ์๋๋ค๋ ๊ฒ์ด๋ค.๋ฐ๋ผ์ ๋ค์ ์๋ jni๋ฅผ ํธ์ถํ ๋ ๊ฐ์ dll์ ๋ค์ ๋ถ๋ฌ์ค๋ ค๊ณ ์๋ํ๋ฉด ์์ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.์ด ์ค๋ฅ๋ก ์ธํด ๋์ํ๋ ์๋ฐ ํด๋์ค๋ ์ด๊ธฐํ๋ ์ ์๊ธฐ ๋๋ฌธ์ ํด๋น ํญ๋ชฉ์ด๋ applet์ ์์ํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์ฌ์ค ๋งค์ฐ ๊ฐ๋จํ๋ค. jni์ ์ ๊ทผํ ์ฝ๋๋ฅผ ๋จ๋ ์ผ๋ก ์ถ์ถํ์ฌ ํ๋ก์ ํธ ์์ฒด์classLoader๋ฅผ ์ง์ ๋ถ๋ฌ์ค์ง ์๊ณ ์์คํ Loader์์ ๋ถ๋ฌ์ค๋ฉด ๋๋ค.ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ด ๋ถ๋ถ์ ์ฝ๋๋ฅผ ๋จ๋ ์ผ๋กjar๋ก ๋ดํ์ฌ ์๋ฐ์ ์์คํ Loader๊ฐ ๋ถ๋ฌ์ฌ ์ ์๋ ๊ณณ, ์๋ฅผ ๋ค์ดlib/ext ๋๋ ํฐ๋ฆฌ์ ๋ฃ๋ ๊ฒ์ด๋ค.๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ์์ ์ด ์ฝ๋๋ฅผ ํธ์ถํฉ๋๋ค.dll์ ์ ๊ทผํ๋ ์ฝ๋๋ ์์คํ ๋ก๋๋ฌ์์ ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ํญ๋ชฉ์ด ๊ฐ์ dll์ ๋์์ ์ ๊ทผํ ๋ ๋ค์ ๋ถ๋ฌ์ค๋ ๊ฒ์ ํผํ ์ ์์ต๋๋ค.๋ ๋ฒ์งธ ํญ๋ชฉ์ด ์ ๊ทผํ ๋ ์ฐพ์ ํด๋์ค๋ ์์คํ ๋ก๋๋ฌ์ ์ํด ๋ถ๋ฌ์๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ ์์ฒด์classLoader๋ ์ด ํด๋์ค๋ฅผ ๋ค์ ๋ถ๋ฌ์ค์ง ์์ต๋๋ค.
๋น๊ตํด ๋ณด๋ฉด ์๋์ appletA, appletB๋ ์์ ๋ ํ์ ์ด๋ฌํ ๊ตฌ์กฐ๊ฐ ๋์๋ค. appletA, appletB, ๊ทธ๋ฆฌ๊ณ jniAccess.jar, ์ฌ๊ธฐ์ jniAccess.jar๋ jre์lib ๋๋ ํฐ๋ฆฌ์ ext ๋๋ ํฐ๋ฆฌ์ ์์ต๋๋ค.์ด๋ ๊ฒ ํ๋ฉด ์ ํ๋ฆฟ์ ๋ค์ ๋ฐฉ๋ฌธํ๋ฉด ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
(์๋ฌธ)http://www.iflym.com/index.php/code/resolve-java-lang-unsatisfiedlinkerror-native-library-dll-already-loaded-in-another-classloader-problem.html
์ด ๋ด์ฉ์ ํฅ๋ฏธ๊ฐ ์์ต๋๊น?
ํ์ฌ ๊ธฐ์ฌ๊ฐ ์ฌ๋ฌ๋ถ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ AI ์์ง์ ๋จธ์ ๋ฌ๋ ๋ถ์(์ค๋งํธ ๋ชจ๋ธ์ด ๋ฐฉ๊ธ ๋ง๋ค์ด์ ธ ๋ถ์ ํํ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์์)์ ํตํด ๊ฐ์ฅ ์ ์ฌํ ๊ธฐ์ฌ๋ฅผ ์ถ์ฒํฉ๋๋ค:
์๋ฐ, jar ํจํค์ง ์์ ์์ ํ์ผ ์ฝ ๊ธฐ๋ฆฌ ์์ค Jar. jar ์ ๋ฆฌ ์์ค ํด๋์ค ๋ฅผ ํธ์ถ ํ ๋ JVM ์ ๋ฆฌ ์์ค ํด๋์ค ์ ๋ถ ๋ฌ ์ค๊ณ ๋ฆฌ ์์ค ๊ฐ ์ค ํ ๋ ๋์ ์ ๋ณด ๋ฅผ ๊ธฐ๋ก ํฉ ๋ ๋ค (๋ฆฌ ์์ค ๊ฐ ์ ๋ jar ํจํค์ง ์ ๊ฒฝ๋ก ์ ๋ณด ํฌํจ)...
ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
CC BY-SA 2.5, CC BY-SA 3.0 ๋ฐ CC BY-SA 4.0์ ๋ฐ๋ผ ๋ผ์ด์ผ์ค๊ฐ ๋ถ์ฌ๋ฉ๋๋ค.
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค