java和jxta刚开始学,编了一个程序HelloWorld如下:
import net.jxta.peergroup.PeerGroup;
import net.jxta.peergroup.PeerGroupFactory;
import net.jxta.exception.PeerGroupException;
public class HelloWorld {
 static PeerGroup group = null;
 public static void main(String args[]){
    HelloWorld myapp=new HelloWorld();
    myapp.startJxta();
    System.exit(0);
 }
 private void startJxta() {
 try {
  group = PeerGroupFactory.newNetPeerGroup();
 }
 catch (PeerGroupException e) {
 System.out.println("fatal error : group creation failure");
 System.exit(1);
 }
 System.out.println("Started Hello World"); }
}
使用了j2sdk1.4.2,安装在C:\,在j2sdk1.4.2里建立了net\jxta\peergroup和net\jxta\exception目录并拷有相应引用class,在Windows XP命令行里输入javac  HelloWorld.java可以通过并生成HelloWorld.class,但输入java  HelloWorld报错如下:
Exception in  thread  "main" java.lang.NoClassDefFoundError:org/apache/log4j/Priority
at HelloWorld.startJxta(HelloWorld.java:19)
at HelloWorld.main(HelloWorld.java:12)
到底是什么地方出错了,请高手帮忙!!

解决方案 »

  1.   

    是环境变量没设定对,系统找不到apache的jar包。
      

  2.   

    需要在环境变量里设置classpath
      

  3.   

    如果使用的是ide就添加log4j包和
    jxta相应的包到工程吧。
      

  4.   

    main线程异常
    路径不对??~~~~~~~~
      

  5.   

    dd就是环境变量的问题,找不到那个jar包
      

  6.   

    我这不是JSP程序,还需设apache路径吗?helloworld.java放在C:\j2sdk1.4.2下,path中也加了这个路径,classpath也设置了(set  classpath=.;c:\jdk1.4.2\lib\dt.jar;c:\jdk1.4.2\lib\tools.jar;C:\j2sdk1.4.2\net\jxta\peergroup;C:\j2sdk1.4.2\net\jxta\exception)而且最简单的没有import语句的HelloWorld.java编译运行没有问题,这到底是哪个的路径不对呀?
      

  7.   

    最后两个环境变量设置错误,要把具体的jxta的jar包写进去。
      

  8.   

    还有我特别奇怪这个“org/apache/log4j/Priority”路径是什么来着,我的j2sdk1.4.2标准版中并没有这个路径,所加的jxta目录中也没有这个路径,我好象没有用到这个路径!
      

  9.   

    to zouxinfox(Read the source,Use the force) :我把环境变量变为: set  classpath=.;c:\jdk1.4.2\lib\dt.jar;c:\jdk1.4.2\lib\tools.jar ;C:\j2sdk1.4.2\jxta.jar还是不行,老问题!
    to xjlz0001(星际浪子0001) :怎么直接写路径,我试过多种方法,甚至把类都拷到同一目录下还是有问题,这个“org/apache/log4j/Priority"不知是什么?
      

  10.   

    helloworld.java放到哪儿了?你在哪个目录运行的javac,java?
      

  11.   

    是classpath错误了!看看你的classpath
      

  12.   

    zxlxg (xgl):使用了j2sdk1.4.2,安装在C:\,在j2sdk1.4.2里建立了net\jxta\peergroup和
    net\jxta\exception目录并拷有相应引用classimport net.jxta.peergroup.PeerGroup;
    import net.jxta.peergroup.PeerGroupFactory;
    import net.jxta.exception.PeerGroupException;
    是以Jar包的形式组织引入的,你拷相应引用class是不能运行的.
      

  13.   

    我也遇见了类似的问题,是不是运行的目录不正确啊?我是在c:\decuments and settings>下执行的java   javac.是哪个环境变量出了问题呢?
    我也使编译成功了,运行和他是一样的错误
      

  14.   

    Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found.The searched-for class definition existed when the currently executing class was compiled, but the definition can no longer be found.
      

  15.   

    在什麼情況下會發生 java.lang.NoClassDefFoundError , 以及如何避免這種情況發生?
       java.lang.NoClassDefFoundError 是 Java 無法在所給予的 classpath 中找到提及的類別或介面的定義,因而丟出的執行時期例外。這個錯誤通常是因為 classpath 的設定錯誤而丟出的。
       如果這個錯誤被丟出,請確定你在 classpath 中有包含目前的目錄( 以句點 . 表示)。所有在套件中的使用者定義類別也應該在 classpath 中。也請確定你的路徑有參考到 Java 類別庫檔案,位於 JDK 軟體安裝目錄的 bin 目錄中。
    在 Solaris 環境中
    set PATH=${PATH}:/usr/java/bin
    set CLASSPATH=.:/usr/java/lib/下列的程式碼可以檢查你的 JVM 軟體使用什麼 classpath:public void displayClassPath()
    {
      try
      {
        System.out.println(System.getProperty("java.class.path"));
      }
      catch(Throwable t)
      {
        t.printStackTrace();
      }
    }如果你使用 java Test.java 命令來執行類別,也會丟出這個錯誤。這個應該是使用 java Test,因為類別名稱是 Test 而不是 Test.java,而這是引數 JVM 會搜尋的正規值。
      

  16.   

    这个是一个ClassPath的问题,解决的办法由两个。
    1。给系统,或者开发的IDE环境里面追加你要用的Jar的路径或者文件。
    2。用java命令来启动的时候,用-classpath这个参数也可以,把你的那个jar文件放在后面就可以了。
      

  17.   

    "org/apache/log4j/Priority"应该是Apache的Log4j那个包里面的,你缺少的,是Log4j的包,不是你理解的jxta的包。
    去下载Log4j的包,添加到你的Classpath里面,就可以了。
      

  18.   

    jxta的里面会调用Log4j的东西,你去Apache的网站,下载一个,添加近来,就可以了。
      

  19.   

    这个问题终于解决,不是classpath的问题,而是缺少需要的jar包,到网上下了个老版本的jxtashell,把里面lib目录中的所有包拷贝到c:\j2sdk1.4.2\lib中,并添加到classpath中,passed!感谢大家的踊跃参与,特别是 Croatia,您的提醒让我找对了思路,非常感谢!