运行修改后的Java代码时出现问题

时间:2012-02-09 22:36:57

标签: java

我使用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编码的新手,所以我不知道如何解决它。谢谢。

4 个答案:

答案 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