アプリ版:「スタンプのみでお礼する」機能のリリースについて

データベースに接続して操作するプログラム作成しました。
Firstcsv.javaのコンパイルは成功するのですが、実行すると
Exception in thread "main" java.lang.NoClassDefFoundError: Firstcsv
Caused by: java.lang.ClassNotFoundException: Firstcsv
というエラーが出てしまいます。

本やネットで調べてみて、クラスパスに問題がありそうなのはわかったのですが
具体的に何を変更したら良いかわからず、教えていただけないでしょうか?

Windowsの環境変数設定画面で元々以下の設定をしていました
PATH C:¥Program Files¥Java¥jdk1.6.0_45¥bin

今回初めてDBに接続するプログラムを作成したので、新しく
CLASSPATH C:¥Program Files¥PostgreSQL¥9.5
をつくり、そのディレクトリにpostgresql-9.41208.jre6.jarというjdbcドライバのjarファイルを置いています。

Firstcsv.class自体はデスクトップの適当なフォルダに入っています。

行き詰まってしまったので、どうぞよろしくお願いします。

A 回答 (3件)

あまり関係ありませんがCLASSPATHを設定後一度ログアウトされてから実行していますか?


Windowsの環境変数は基本的にデスクトップ起動時に設定されたものが引き継がれます。
つまり設定を変えてもログアウトするまで新しい値が反映されません。

本題ですが、javaコマンドの実行した場所とClassファイルのある場所の関係がよくなさそうです。
Classファイルにまで移動して、以下のコマンドを実行してみてください。
java -classpath .;"C:¥Program Files¥PostgreSQL¥9.5" Firstcsv
    • good
    • 0
この回答へのお礼

お返事が遅くなってしまい申しわけありません。ログアウトしてからというのは存じ上げておりませんでした、アドバイスありがとうございました。

お礼日時:2016/08/07 16:20

単純にクラス Firstcsv が見つからない、というエラーです。


おそらくクラスファイルの置き場所か、実行方法を間違えています。

もしクラスのソースファイルにて、先頭の package が com.example.myapp だとすれば

以下の様なフォルダ構造にして
c:\Users\oresama\Desktop\適当なフォルダ\com\example\myapp\Firstcsv.class

以下の様に実行しましょう
> cd c:\Users\oresama\Desktop\適当なフォルダ
> java com.example.myapp.Firstcsv

余談ではありますが

CLASSPATH に jar を追加する場合は、ファイル名まで含めてください
https://docs.oracle.com/javase/jp/8/docs/technot …
例:
"C:¥Program Files¥PostgreSQL¥9.5\postgresql-9.41208.jre6.jar"
    • good
    • 0
この回答へのお礼

お返事が遅くなってしまい申しわけありません。教えていただいた通り行ったら実行できました、ありがとうございます。

お礼日時:2016/08/07 16:19

やることは単純



■実行に必要なクラスファイルのフォルダとjarのファイル名を
クラスパスに含めなければならない。
■クラスパスは CLASSPATH 環境変数か、java コマンドの -cp
オプションで指定する。
■クラスファイルはクラスパスでそのフォルダを指定する。
■jarファイルはクラスパスでそのファイル名を指定する。

面倒くさければ、実行可能jarにしてしまいましょう。
使用ライブラリも含めれば、jarをダブルクリックするだけで
実行できます。
eclipseならウィザードに従って作るだけ。
    • good
    • 0
この回答へのお礼

お返事が遅くなってしまい申しわけありません。教えていただいた通り行ったら実行できました、ありがとうございます。

お礼日時:2016/08/07 16:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています