質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

5596閲覧

PythonのJDBC接続、JAVA_HOMEの記述次第で 動作しない。 どういう事象と理解し、対策をはかるべきか

saya24

総合スコア227

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/02/18 07:53

編集2020/02/18 07:56

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の環境をアサインした場合に 動作しない理由・対策をご教示頂けませんでしょうか? よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

こちらへ 集約致します。

投稿2020/02/22 08:51

saya24

総合スコア227

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2020/02/18 08:03

編集2020/02/18 08:18
Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saya24

2020/02/18 08:34 編集

いつもお世話になっております。 接続先のOracleですね? Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production です。 ご紹介のページを確認すると、接続DBに関していえば ojdbc8.jar はバッチリな感じと認識します。 ただ、それが64版と86版があるのか、 JREでは そのjarファイルを動作できないのか JDKのVERで適合はどれなのかがよく分かりません(ご紹介のページにJDK8との記載ありますが、当方がProgram File X86で所有するJDK1.7との前後関係が分からず) 皆さま よろしくお願い致します。
Orlofsky

2020/02/18 08:43

Oracle を使うのでしたら、さっさとサポート契約してオラクル・サポートに問い合せましょう。サポート契約はライセンスの購入時点に遡って払わなければなりません。 詳しいことはライセンスの購入時の担当営業に確認してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問