Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No JVM shared library file (jvm.dll) found. Try setting up the JAVA_HOME environment variable properly. #416

Open
Andy-Park0209 opened this issue Dec 2, 2022 · 2 comments

Comments

@Andy-Park0209
Copy link

Andy-Park0209 commented Dec 2, 2022

from konlpy.tag import Kkma
kkma = Kkma()

아나콘다를 통해 쥬피터노트로 위를 돌렸으나 하기와 같이 오류 메시지가 노출 되었습니다.

[ 오류 메시지 ]

JVMNotFoundException Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_16476\2043015914.py in
1 from konlpy.tag import Kkma
----> 2 kkma = Kkma()

C:\ProgramData\Anaconda3\lib\site-packages\konlpy\tag_kkma.py in init(self, jvmpath, max_heap_size)
42 def init(self, jvmpath=None, max_heap_size=1024):
43 if not jpype.isJVMStarted():
---> 44 jvm.init_jvm(jvmpath, max_heap_size)
45
46 kkmaJavaPackage = jpype.JPackage('kr.lucypark.kkma')

C:\ProgramData\Anaconda3\lib\site-packages\konlpy\jvm.py in init_jvm(jvmpath, max_heap_size)
53 classpath = [f.format(*args) for f in folder_suffix]
54
---> 55 jvmpath = jvmpath or jpype.getDefaultJVMPath()
56
57 # NOTE: Temporary patch for Issue #76. Erase when possible.

C:\ProgramData\Anaconda3\lib\site-packages\jpype_jvmfinder.py in getDefaultJVMPath()
72 else:
73 finder = LinuxJVMFinder()
---> 74 return finder.get_jvm_path()
75
76

C:\ProgramData\Anaconda3\lib\site-packages\jpype_jvmfinder.py in get_jvm_path(self)
210 if jvm_notsupport_ext is not None:
211 raise jvm_notsupport_ext
--> 212 raise JVMNotFoundException("No JVM shared library file ({0}) "
213 "found. Try setting up the JAVA_HOME "
214 "environment variable properly."

JVMNotFoundException: No JVM shared library file (jvm.dll) found. Try setting up the JAVA_HOME environment variable properly.

제가 트라이 해본 방법은 하기와 같습니다.

  1. path 설정 후 -> 재설치 : 동일 상황 발생

  2. 시스템 변수 / PATH 설정
    . C:\Program Files\Java\jdk-19\bin\server 로 지정 : 그러나 동일 상황 발생

  3. os.environ['JAVA_HOME'] = "C:\Program Files\Java\jdk-19\bin\server" 환경변수 설정
    . 동일 상황 지속 발생

  4. _jvmfinder : 코딩 수정
    . 경로 : C:\ProgramData\Anaconda3\Lib\site-packages~pype
    . 수정한 코드 : java_home 부분을 "C:\Program Files\Java\jdk-19\bin\server" 로 변경
    def _get_from_java_home(self):
    """
    Retrieves the Java library path according to the JAVA_HOME environment
    variable

     Returns:
         The path to the JVM library, or None
     """
     # Get the environment variable
     java_home = os.getenv("C:\Program Files\Java\jdk-19\bin\server")
     if java_home and os.path.exists("C:\Program Files\Java\jdk-19\bin\server"):
         # Get the real installation path
         java_home = os.path.realpath("C:\Program Files\Java\jdk-19\bin\server")
    
         if not os.path.exists(java_home):
             java_home = os.getenv("C:\Program Files\Java\jdk-19\bin\server")
    
         # Look for the library file
         return self.find_libjvm**("C:\Program Files\Java\jdk-19\bin\server")**
    

상기 방법들을 다 트라이 하였으나 모두 실패하여..도움을 청하고자 글 남깁니다 ㅠㅠ
6시간 정도 메달리는데 해결을 못하네요 ㅠㅠㅠㅠ

@hexists
Copy link
Contributor

hexists commented Dec 6, 2022

@Andy-Park0209

안녕하세요.
혹시 아래 글을 확인해보셨을까요?
#364 (comment)

Jupyter notebook에서 os.environ을 이용해서 JAVA_HOME을 설정해서 테스트 해보면 좋을 것 같습니다.

In [5]: os.environ['JAVA_HOME'] = r'C:\Program Files\Java\jdk-16.0.2'

In [6]: kkma = Kkma()

In [7]: kkma.pos('환경 변수 설정이 되어 있는지 확인하는 것이 중요합니다.')
Out[7]:
[('환경', 'NNG'),
 ('변수', 'NNG'),
 ('설정', 'NNG'),
 ('이', 'JKC'),
 ('되', 'VV'),
 ('어', 'ECD'),
 ('있', 'VXV'),
 ('는지', 'ECS'),
 ('확인', 'NNG'),
 ('하', 'XSV'),
 ('는', 'ETD'),
 ('것', 'NNB'),
 ('이', 'JKS'),
 ('중요', 'NNG'),
 ('하', 'XSV'),
 ('ㅂ니다', 'EFN'),
 ('.', 'SF')]

그리고, 아나콘다를 꼭 사용해야 하는 상황이 아니라면 https://www.python.org/에서 배포하는 파이썬으로 설치해서 사용해보길 추천드립니다.
설치 버전은 위 링크 내용을 참고하시면 좋을 것 같아요.

Python: Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)]
JPype: 1.1.2
Java: 16.0.2

테스트 해보시고 결과 공유 부탁드립니다.
감사합니다.

@Jeongho-Shin
Copy link

안녕하세요.
동일한 이슈로 오류가 발생하여 검색해서 들어왔는데 위 방법으로 해결되었습니다.
감사합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants