正如您所看到的,我处于执行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>
insertImg.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());
}
}
}
答案 0 :(得分:0)
insertImg.java是否有一个insertImg类(注意区分大小写),它有一个公共main
函数?
答案 1 :(得分:0)
我看到你从roseIndia获得了代码,它正在为我工作而没有任何障碍。然而,无论你展示什么,它仍然很奇怪..我的建议是使用像eclipse这样的IDE
您可以随时尝试以下步骤
1)在Mysql数据库中创建一个表以适应上面的代码
CREATE TABLE IMAGE
(
IMG_ID INT,
IMG_NAME VARCHAR2(100),
IMG BLOB
)
2)在eclipse中创建一个新的java项目并创建一个新类insertImg并将代码粘贴到那里。请确保您的图像文件路径与图像的位置相同并运行它。工作正常
答案 2 :(得分:0)
我已尝试使用Oracle数据库必须添加-classpath ojdbc.jar,它也可以从控制台中运行,如图所示 我在数据库中加载的图像文件在D:\中,因此它不在上面的屏幕截图中
希望这会有所帮助
答案 3 :(得分:0)
这是一个简单的类路径错误。 CLASSPATH
环境变量允许Java知道在哪里查找类。
不幸的是,Java不够聪明,不知道它需要在本地目录中查找类。要解决此问题,您所要做的就是根据您使用的是Windows还是Linux / Unix来执行以下语句之一:
对于Windows:
set CLASSPATH=.;%CLASSPATH%
对于Linux:
export CLASSPATH=.:$CLASSPATH