0

Test.Javaという次のファイルがあります。そのコードは次のとおりです。

package example25;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Iterator;
import org.jibx.runtime.BindingDirectory;
import org.jibx.runtime.IBindingFactory;
import org.jibx.runtime.IMarshallingContext;
import org.jibx.runtime.IUnmarshallingContext;
import org.jibx.runtime.JiBXException;

public class Test 
{   
public static void main(String[] args) 
{

    try
    {

        // unmarshal customer information from file
        IBindingFactory bfact = BindingDirectory.getFactory(Order.class);
        IUnmarshallingContext uctx = bfact.createUnmarshallingContext();
        FileInputStream in = new FileInputStream("D:\\Java Libraries\\jibx\\dwcode2\\starter.xml");
        Order order = (Order)uctx.unmarshalDocument(in, null);

        // compute the total amount of the order
        float total = 0.0f;
        for (Iterator<Item> iter = order.getItemList().iterator(); iter.hasNext();)
        {
            Item item = iter.next();
            total += item.getPrice() * item.getQuantity();
        }
        order.setTotal(new Float(total));

        // marshal object back out to file (with nice indentation, as UTF-8)
        IMarshallingContext mctx = bfact.createMarshallingContext();
        mctx.setIndent(2);
        FileOutputStream out = new FileOutputStream("c:\\out.xml");
        mctx.setOutput(out, null);
        mctx.marshalDocument(order);
        System.out.println("Processed order with " +  order.getItemList().size() + " items and total value " + total);

    }
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
        System.exit(1);
    } catch (JiBXException e)
    {
        e.printStackTrace();
        System.exit(1);
    }
}//end main

}//end class

これが私がこのファイルと私が得る出力をコンパイルしようとしている方法です

C:\jibx\tutorial>javac example25\Test.java
example25\Test.java:8: error: package org.jibx.runtime does not exist
import org.jibx.runtime.BindingDirectory;
                   ^
example25\Test.java:9: error: package org.jibx.runtime does not exist
import org.jibx.runtime.IBindingFactory;
                   ^
example25\Test.java:10: error: package org.jibx.runtime does not exist
import org.jibx.runtime.IMarshallingContext;
                   ^ 
example25\Test.java:11: error: package org.jibx.runtime does not exist
import org.jibx.runtime.IUnmarshallingContext;
                   ^
example25\Test.java:12: error: package org.jibx.runtime does not exist
import org.jibx.runtime.JiBXException;
                   ^
example25\Test.java:25: error: cannot find symbol
IBindingFactory bfact = BindingDirectory.getFactory(Order.class);
        ^
symbol:   class IBindingFactory
location: class Test
 example25\Test.java:25: error: cannot find symbol
 IBindingFactory bfact = BindingDirectory.getFactory(Order.class);
                                ^
 symbol:   variable BindingDirectory
 location: class Test
 example25\Test.java:26: error: cannot find symbol
        IUnmarshallingContext uctx = bfact.createUnmarshallingContext();
        ^
 symbol:   class IUnmarshallingContext
 location: class Test
 example25\Test.java:40: error: cannot find symbol
        IMarshallingContext mctx = bfact.createMarshallingContext();
        ^
 symbol:   class IMarshallingContext
 location: class Test
 example25\Test.java:52: error: cannot find symbol
    } catch (JiBXException e)
             ^
 symbol:   class JiBXException
 location: class Test
 10 errors

Testで使用されるすべてのクラスファイルがその隣にあり、適切にコンパイルされています。テストは私に問題を与えている最後のファイルです。さらに、テストで使用されるクラスの一部は、コマンドを実行しているC:\ jibx \ tutorial>とは対照的に、C:\ jibx\lib>に存在します。以前に生成したクラスファイルを変更せずにこの問題を解決する方法についての提案をいただければ幸いです。

4

2 に答える 2

0

ディレクトリC:\ jibx \libをクラスパスに追加します。例:

SET CLASSPATH=%CLASSPATH%;C:\jibx\lib;.

次にjavacを実行します

于 2012-05-07T04:28:38.987 に答える
0

いくつかのインポート エラーがあるため、Satya が言ったようにクラス パスを適切に設定します。また、いくつかのディレクトリにある現在のクラスは、javac の -d 属性でコンパイルする必要があります。

javac -d . あなたのファイル名.java

于 2012-05-07T04:34:53.253 に答える