0

ご覧のとおり、Java ファイルを実行する現在のパスにあることがわかります。

ご覧のとおり、私は Java ファイルを実行する現在のパスにいます。プログラムをコンパイルすると、クラスファイルが正常に取得されます。しかし、それを実行すると、そのパスにそのようなクラスが利用できないというエラーが画像に表示されるため、そのプログラムを実行できません..

C:\Users\admin>javac insertImg.java

C:\Users\admin>java insertImg
Exception in thread "main" java.lang.NoClassDefFoundError: insertImg
Caused by: java.lang.ClassNotFoundException: insertImg
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: insertImg.  Program will exit.

C:\Users\admin>

そして、これはデータベースに画像を挿入するための私のJavaコードです.....

挿入Img.java:

import java.sql.*;
import java.io.*;

public class insertImg{
    public static void main(String[] args) {

        System.out.println("Insert Image Example!");
        String driverName = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/";
        String dbName = "hibernatetutorial";
        String userName = "root";
        String password = "root";
        Connection con = null;

        try {
            Class.forName(driverName);
            con = DriverManager.getConnection(url+dbName,userName,password);
            Statement st = con.createStatement();

            File imgfile = new File("images.jpg");
            FileInputStream fin = new FileInputStream(imgfile);

            PreparedStatement pre = con.prepareStatement("insert into Image values(?,?,?)");
            pre.setInt(1,5);
            pre.setString(2,"Durga");
            pre.setBinaryStream(3,fin,(int)imgfile.length());
            pre.executeUpdate();

            System.out.println("Inserting Successfully!");

            pre.close();
            con.close();  

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
} 
4

4 に答える 4

0

あなたは roseIndia からコードを取得したようです。問題なく動作しています。ただし、あなたが示しているものは何でもまだ奇妙です..私の提案は、EclipseのようなIDEを使用することです

いつでも次の手順を試すことができます

1) 上記のコードに合わせて、Mysql データベースにテーブルを作成します。

CREATE TABLE IMAGE
(
 IMG_ID    INT,
 IMG_NAME  VARCHAR2(100),
 IMG       BLOB
)

2) Eclipse で新しい Java プロジェクトを作成し、新しいクラス insertImg を作成して、そこにコードを貼り付けます。画像ファイルのパスが画像の場所と同じであることを確認して実行してください。正常に動作しています

于 2012-11-29T10:26:43.317 に答える
0

insertImg.java には publicmain関数を持つクラス insertImg (大文字と小文字の区別に注意) がありますか?

于 2012-11-29T10:06:59.257 に答える
0

これは単純なクラスパス エラーです。環境変数により、JavaはCLASSPATHクラスを探す場所を知ることができます。

残念ながら、Java は、ローカル ディレクトリでクラスを探す必要があることを認識できるほど知的ではありません。この問題を解決するには、Windows と Linux/Unix のどちらを使用しているかに応じて、次のステートメントのいずれかを実行するだけです。

Windows の場合:

set CLASSPATH=.;%CLASSPATH%

Linux の場合:

export CLASSPATH=.:$CLASSPATH
于 2014-10-24T22:17:07.373 に答える
0

ここに画像の説明を入力

Oracle データベースで試してみたところ、-classpath ojdbc.jar を追加する必要があり、コンソールからも機能しました。画像でわかるように、データベースにロードした画像ファイルは D:\ にあるため、上記にはありませんスクリーンショット

お役に立てれば

于 2012-11-29T11:43:31.110 に答える