実現したいこと
(1)Linux(CentOS)で、動作実績のあるJavaプログラムソースをWindowsでコンパイルと実行する。
(2)JDBC(MySQL Connector/J 9.0)を使用してMySQLにつなぎ、ストアドプロシージャを起動する。
※ 都合上、EclipseやVSCodeによるビルド環境ではなく、手動でコンパイルと実行するという環境です。
//ソース構成 C:\/hoge ├ Test01.class ├ Test01.java └ mysql-connector-j-9.0.0.jar
発生している問題・分からないこと
Linuxで起動したときとほぼ同じ要領で、Windowsでコンパイルと起動を試しました。
//① まずコンパイルは通ります。「Test01.class」も生成されました。 PS C:\hoge> javac -encoding utf-8 -classpath .\mysql-connector-j-9.0.0.jar .\Test01.java
ところが、いざ「java」コマンドで実行すると、mysql-connector-j-9.0.0.jar以外の外部パッケージは使用せず、ソースも小規模かつ簡素でありながら、「エラー: メイン・クラスTest01が見つからなかったかロードできませんでした」というエラーが発生します。
エラーメッセージ
error
1//② 今回の問題発生。 2PS C:\hoge> java -classpath .\mysql-connector-j-9.0.0.jar: Test01 3エラー: メイン・クラスTest01が見つからなかったかロードできませんでした 4
該当のソースコード
Java
1//小規模ソースなので、パッケージ定義は無しです。 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.SQLException; 6import java.sql.Statement; 7import java.sql.CallableStatement; 8 9public class Test01 { 10 public static void main(String[] args) { 11 try { 12 13/******【中略】MySQL に接続、ストアドプロシージャを起動 ******/ 14 15 } catch (SQLException | ClassNotFoundException e) { 16 e.printStackTrace(); 17 } 18 } 19} 20
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
★Googleなどで調べてどう考えたか?
エラーメッセージをそのまま検索しました。
同じような原因パターンとして、
・パッケージ名が指定されていない
・フォルダ構成を入れ替える
という対処法がほとんどでした。
★Windows側のJavaについて。
Windows版 OpenJDK 8で、インストーラー版ではなくZIPファイルから解凍し、
PATH
は、「C:\{ZIPファイルから解凍したフォルダ}\bin
」を設定しました。
この状態で、「java -version, javac -version
」を叩くと正常にPATH
が通ることを確認しました。
CLASSPATH
は設定していませんでした。
★Windows環境で、ほかのプログラムでも同じ現象が発生するか?
「HELLO WORLD」のごく単純なプログラムの場合は、全く問題なくコンパイル&実行が出来ました。
// このコマンドでは正常にコンパイルと実行ができた javac -encoding utf-8 .\HelloWorld.java java HelloWorld
補足
【今回の環境】
Linux-OS = CentOS 8
Windows = Windows 10 Pro 64bit 22H2
Java(Linux側) = OpenJDK 1.8
Java(Windows側)= OpenJDK 1.8
JDBCドライバ = MySQL Connector/J 9.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/08/21 01:21