我有以下程序包结构,其中即时消息试图运行示例休眠应用程序
源文件:/home/chander/workspace/HibernateApp/src/com/hib/TranslateSQL.java
我当前的目录:
/home/chander/workspace/HibernateApp/src
编译:
$JAVA_HOME/bin/javac com/hib/*.java
---运行成功跑:
$JAVA_HOME/bin/java com/hib/TranslateSQL
给出以下异常:Exception in thread "main" java.lang.NoClassDefFoundError: TranslateSQL (wrong name: com/hib/TranslateSQL)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:315)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: TranslateSQL. Program will exit.
我设置了我的类路径和JAVA_HOME。我似乎没有发现我的命令出了什么问题。
还尝试了以下命令:
$JAVA_HOME/bin/java com.hib.TranslateSQL
有以下异常:
Exception in thread "main" java.lang.NoClassDefFoundError: com/hib/TranslateSQL
Caused by: java.lang.ClassNotFoundException: com.hib.TranslateSQL
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:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:315)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: com.hib.TranslateSQL. Program will exit.
最佳答案
您输入的类名不正确。代替这个:
$JAVA_HOME/bin/java com/hib/TranslateSQL
您应该正在运行:
$JAVA_HOME/bin/java com.hib.TranslateSQL
您应该指定包(
com.hib
)中的类名,而不是目录结构(com/hib
)中的文件名。编辑:如果不起作用,则您的类路径可能设置不正确。您可以在命令行上指定它:
$JAVA_HOME/bin/java -cp . com.hib.TranslateSQL