2009-08-13 14 views
1

こんにちは、これはロニーRibordyで、例外「メイン」JAVA.LANG.NOCLASSDEFFOUNDERROR ORG/JDOM /入力/ SAXBuilder

は、私は私が記述しようとしていますプログラムを持っており、その一部が呼ばれるサードパーティのAPIを使用していますJDomに、 私は私のプログラムをコンパイルするとき、それは私がそれを実行しようとすると、私はスレッドでの例外「メイン」JAVA.LANG.NOCLASSDEFFOUNDERROR ORG/JDOM /入力/ SAXBuilder

に私のプログラムを取得し、完全に罰金コンパイル..しかし、以下のようになります...


import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.io.*; 
import java.net.*; 
import java.util.*; 
import org.jdom.*; 
import org.jdom.input.*; 
import org.jdom.output.*; 

public class COS extends JPanel implements ActionListener{ 
    static JFrame f=new JFrame(); 
    Image bgImage=null; 
    String message=""; 
    public COS(){ 
     try{ 
      String xml="background.xml"; 
      SAXBuilder builder=new SAXBuilder(); 
      Document doc=builder.build(new File(xml)); 
      Element root=null; 
      Element img=null; 
      String fimg=null; 
      try{ 
       root=doc.getRootElement(); 
       img=root.getChild("bgimage"); 
       fimg=img.getText(); 
      } catch(Exception e){ 
      } 
      getFileImage(fimg); 
     } catch(Exception e){ 
      message="File load failed: "+e.getMessage(); 
     } 
    } 
    public void paintComponent(Graphics g){ 
     if(bgImage!=null){ 
      g.drawImage(bgImage,0,0,this); 
     } 
     else{ 
      g.drawString(message,40,40); 
     } 
    } 
    public void getFileImage(String filein) throws IOException, InterruptedException{ 
     FileInputStream in=new FileInputStream(filein); 
     byte[] b=new byte[in.available()]; 
     in.read(b); 
     in.close(); 
     bgImage=Toolkit.getDefaultToolkit().createImage(b); 
     MediaTracker mt=new MediaTracker(this); 
     mt.addImage(bgImage,0); 
     mt.waitForAll(); 
    } 
    public void actionPerformed(ActionEvent e){ 

    } 
    public static void main(String[] args){ 
     COS newcos=new COS(); 
     f.setSize(825,640); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.getContentPane().setLayout(null); 
     newcos.setBounds(5,5,800,600); 
     f.setLocation(10,5); 
     f.getContentPane().add(newcos); 
     f.setVisible(true); 
    } 
} 

could anybody tell what's wrong? 

答えて

0

私は問題はあなたがhあなたのクラスパスにJDomの古いバージョンを置いておき、あなたが望むものの前にロードされている。

まず、クラスパスにJDomの別のバージョン(ダウンロードしたもの以外)がインストールされていないことを確認してください。

org.jdom.input.SAXBuilder

クラスは、ダウンロードJWhichからロードされている場所を見つけると、クラスがからロードされている場所を確認するためにそれを使用します。

第2に、別のバージョンのJDOMがそれを依存関係として含んでいないことをmavenがチェックしている場合は、これを行うにはmvn dependency:treeコマンドを使用します。

+0

私が探すべきパーサーは何ですか?私はJavaがいくつか構築されていることを知っているが、JDomはJDomのバイナリページからJDom 1.1である自分自身を含んでいる最初のものです..私は手作業ですべてを書くので、Mavenや何も持っていません –

+0

JAR orgを見つけてください。 jdom.input.SAXBuilderは最初からロードされています... – Jon

+0

明らかにそれは発見されていません..私はJDom 1.1のjarファイルを入れなおすためにjdom jarをすべて削除しましたか?それはちょうどjdomです。ジャー?またはxerces.jar..etcを含める必要がありますか? –

1

私は、私の問題を見つけた私は私のjavaにJDomにをインストールしたとき、私は、JREのlibに/ extに

に含めるのを忘れて、今すべてが時間のためにありがとうは非常に多く、動作するようになっているだけのように動作しますあなたは私を助けてくれました

+0

クールですが、これはクラスパスに入れてjreのlib/ext理想的には... http://mindprod.com/jgloss/classpath.htmlを参照してください。 – Jon

関連する問題