1

次のディレクトリ構造があります c:\jibx\tutorial\example23\ 例 23 には、次のファイルが含まれています。

ここに画像の説明を入力

現在、このフォルダー内の他のクラスを参照する CustomerManager Java ファイルのみをコンパイルしようとしています。CustomerManager Java ファイルのコードは簡単です。

package example23;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import org.jibx.runtime.*;

public class CustomerManager 
{

                 public CustomerManager()
                 {
            try 
            {
            IBindingFactory bfact = BindingDirectory.getFactory(Customer.class);
            IUnmarshallingContext uctx = bfact.createUnmarshallingContext();

            Object obj = uctx.unmarshalDocument(new FileInputStream("C:/jibx/tutorial/example23/customer.xml"), null);
            Customer customer = (Customer)obj;
            System.out.print(customer.street+", "+customer.city);
            IMarshallingContext mctx = bfact.createMarshallingContext();
            mctx.setIndent(4);
            mctx.marshalDocument(obj, "UTF-8", null, new FileOutputStream("C:/jibx/tutorial/example23/customer2.xml"));
            } 
            catch (FileNotFoundException e) 
            {
            e.printStackTrace();
            } 
            catch (JiBXException e) 
            { 
            e.printStackTrace();
            }
                  }   //end method

 public static void main(String[] args) 
 {
 new CustomerManager();
 }

 }//end class

現在、このファイルには、c:\jibx\lib などの最上位ディレクトリにあるファイルへの参照が含まれています (ファイル自体は c:\jibx\tutorial\example23 にあります)。

これらのライブラリを参照してファイルをコンパイルするために、次のことを試しました

C:\jibx\tutorial>javac  -classpath c:\jibx\lib\  example23\CustomerManager.java

and the output i got was
example23\CustomerManager.java:7: error: package org.jibx.runtime does not exist

import org.jibx.runtime.*;
^
example23\CustomerManager.java:16: error: cannot find symbol
                               IBindingFactory bfact = BindingDirectory.getFactory(Customer.class);
                                ^
symbol:   class IBindingFactory
location: class CustomerManager
example23\CustomerManager.java:16: error: cannot find symbol
                            IBindingFactory bfact = BindingDirectory.getFactory(Customer.class);

   ^
symbol:   class Customer
location: class CustomerManager
example23\CustomerManager.java:16: error: cannot find symbol
                              IBindingFactory bfact = BindingDirectory.getFact
ory(Customer.class);
                                                    ^
 symbol:   variable BindingDirectory
 location: class CustomerManager
 example23\CustomerManager.java:17: error: cannot find symbol
                            IUnmarshallingContext uctx = bfact.createUnmarsh
allingContext();
                            ^
symbol:   class IUnmarshallingContext
location: class CustomerManager
example23\CustomerManager.java:20: error: cannot find symbol
                            Customer customer = (Customer)obj;
                            ^
symbol:   class Customer
location: class CustomerManager
example23\CustomerManager.java:20: error: cannot find symbol
                            Customer customer = (Customer)obj;
                                                 ^
symbol:   class Customer
location: class CustomerManager
example23\CustomerManager.java:22: error: cannot find symbol
                            IMarshallingContext mctx = bfact.createMarshalli
ngContext();
                            ^
symbol:   class IMarshallingContext
location: class CustomerManager
example23\CustomerManager.java:30: error: cannot find symbol
                            catch (JiBXException e)
                                   ^
symbol:   class JiBXException
location: class CustomerManager
9 errors

C:\jibx\tutorial>

この問題を解決する方法について何か提案はありますか?

4

3 に答える 3

5

あなたの問題は次の行にあると思います

-classpath c:\jibx\lib\

このディレクトリにはjarファイルが含まれていますか?

その場合、次のようにグロブを使用してみてください。

-classpath c:\jibx\lib\*.jar

このようにして、c:\jibx\lib\ ディレクトリにあるすべての jar ファイルをクラスパスに含めます。

于 2012-05-07T08:20:17.203 に答える
3

classpathに .jar ファイルを追加する必要があります。

例えば、

javac  -cp .;c:\jibx\lib\your_lib.jar  example23\CustomerManager.java
于 2012-05-07T08:20:08.057 に答える
0

次の方法で問題を解決できました。

C:\jibx\tutorial>javac  -cp .\example23\*;.;.;c:\jibx\lib\jibx-run.jar;  .\example23\CustomerManager.java

素晴らしい提案をありがとう

于 2012-05-08T03:29:07.080 に答える