2011-05-21 21 views
3

這是我第一次發佈 - 我發現類似的問題,但沒有直接涉及此問題。這聽起來很簡單,但我不太清楚爲什麼會發生這種情況。我的程序在Eclipse中運行的很好,但不是從命令行運行。我在simpletree包內有幾個類。無法使用軟件包從命令行運行多級程序

這裏的BinaryTree.java

package simpletree; 
    import java.io.*; 

    public class BinaryTree implements Serializable { 
     // Automatically generated UID 
     private static final long serialVersionUID = -3124224583476129954L; 

     BinaryTree leftNode; // left node 
     BinaryTree rightNode; // right node 

     // some code 
    } 

    class Tree implements Serializable { 
    private static final long serialVersionUID = 6591795896216994405L; 
    private BinaryTree root; 

    // some code  
    }

而且Program1Test.java

package simpletree; 

    public class Program1Test { 
    public static void main(String[] args) { 
     Tree tree = new Tree(); 
       // some code 
    } 
    }

這裏的問題:從內simpletree精細編譯這樣做:

javac BinaryTree.java Program1Test.java 

當我這樣做:

java Program1Test 

我得到這個:

Exception in thread "main" java.lang.NoClassDefFoundError: Program1Test (wrong n 
ame: simpletree/Program1Test) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(Unknown Source) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$000(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
Could not find the main class: Program1Test. Program will exit. 

任何想法?我有我的類路徑設置正確,我試過運行一個包(simpletree.Program1Test)和沒有。

回答

4

你從上面的目錄simpletree

還需要

java simpletree.Program1Test 

使提供所需的類使用-cp

+0

不要我覺得自己聰明?感謝您及時的回覆! – 2011-05-21 13:46:08

+0

我已將其標記爲已接受。再次感謝。 – 2011-05-21 19:21:36

2
  1. 將您的.class文件中一個名爲 「simpletree」
  2. 子文件夾

    使用此命令行:

    java simpletree.Program1Test

+0

這是另一個很好的解決方案,但是我的類已經在simpletree中(和.java文件一起),我需要在包之外運行程序。 – 2011-05-21 19:23:47