我使用Windows O.S在笔记本电脑上修改了Eclipse中的Java代码。现在我必须在linux O.S上运行代码。通过SSH。我复制了所有文件,我试图编译代码。编译进行得很顺利,因此代码中没有错误。无论如何,当我试图运行它时,shell上出现以下错误:
[ac6411@epigenetic models]$ java TanaModel
Exception in thread "main" java.lang.NoClassDefFoundError: TanaModel (wrong name: models/TanaModel)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
你知道这是什么问题吗?我是Java编码的新手,所以我不知道如何解决它。谢谢。
答案 0 :(得分:2)
wrong name: models/TanaModel
这意味着它希望在models目录下找到TanaModel.class,但是在其他地方找到它(可能是当前目录?)。将类文件放在models目录中,并将其作为
运行java models.TanaModel
Java期望将类文件组织在镜像您在源代码中使用的包结构的目录中。
答案 1 :(得分:1)
java.lang.NoClassDefFoundError: TanaModel (wrong name: models/TanaModel) at
你做了什么命令,我猜java TanaModel
?
很可能你的TanaModel声明在package models;
尝试这样称呼:
java models.TanaModel
答案 2 :(得分:1)
如果是Eclipse安全问题,这会有所帮助。
//Java Code
try
{
AccessController.doPrivileged(new PrivilegedAction<Object>()
{
public Object run()
{
try
{
// Insert code here to do required action (get or open file)
}
catch (Exception e)
{
// Insert code to catch exception from trying to do above action
}
}
}
);
}
catch(Exception e)
{
// Insert code to catch failed doPrivileged()
}
答案 3 :(得分:0)
当您尝试运行程序时,请尝试调用它:
java models.TanaModel