Eclipseの開発端末=Windows10x64: Pyhon3.6
OracleDataBaseからデータ取得するコードを試験的に作りました。
コードの抜粋は以下のとおりで、JAVA_HOMEの環境変数の設定によって 動作状況に違いが生じます。
Python
1 JHOME = jpype.getDefaultJVMPath() 2 if not jpype.isJVMStarted(): 3 jpype.startJVM(JHOME, '-Djava.class.path=ojdbc8.jar') 4 5 6 con = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:XXXXXXX/XXXXXXXX@//99.99.99.99:1521/XXX') 7 cur = con.cursor() 8 9 cur.execute("SELECT NAME FROM M_ITEM WHERE ITEMID='" + t.get() + "'") 10 11 row = cur.fetchone() 12 messagebox.showinfo("結果", row[0]) 13 cur.close() 14 con.close()
環境変数JAVA_HOME=「C:\Program Files\Java\jdk-13.0.1」=>【動作する!!】
環境変数JAVA_HOME=「C:\Program Files (x86)\Java\jdk1.7.0_75」=>【動作しない】
環境変数JAVA_HOME=「C:\Program Files (x86)\Java\jre1.8.0_221」=>【動作しない】
環境変数JAVA_HOME=「C:\Program Files (x86)\Java\jre7」=>【動作しない】
動作しない、と記載した実行では Eclipseに
「jpype._jvmfinder.JVMNotFoundException: No JVM shared library file (jvm.dll) found. Try setting up the JAVA_HOME environment variable properly.」
というエラーが現れます。
★☆★質問★☆★
動作しない、実行では 何の問題が起きているのでしょうか?
こちらのコードを組み込むGUIアプリケーションを、ゆくゆくは他の端末に配布したいと考えています。
OracleClient・InstantClientが入っていない、Windows10x64Bitであるも、
Javaは jre1.8.0_221(Program Filesx86に) が設定されている端末です。
例えば...
・プログラム内部で利用のojdbc8.jarが、64bitのJAVAでしか動作しないものをアサインしている
・Eclipseでの実行、及びEXC化の際に、64bitアプリとして動作しているので、32bitのJavaを読み込めない
・ojdbc8.jarは 32bit/64bitの区別は特段ないが、開発端末に有す32bitのJAVAが 適合しないVerである
気軽にPythonの勉強を始めたつもりが、JAVAの知識まで必要になってきてしまい、面食らっています。
正直JREとJRKの違いもよく分かっていないレベルです。
JAVA_HOMEのシステム変数に 32bitの環境をアサインした場合に 動作しない理由・対策をご教示頂けませんでしょうか? よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。