简体   繁体   中英

How to properly compile this file using javac

I have the following file called Test.Java the code of which is

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

Here is how i am trying to compile this file and the output that i get

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

All the class files used by Test are present next to it and have been properly compiled. Test is the last file that is giving me trouble. Furthermore some of the classes used in test are present in C:\\jibx\\lib> as opposed to C:\\jibx\\tutorial> from where i am executing commands. Any suggestions on how i cld resolve this issue without modifying my previously generated class files would be appreciated.

add the directory C:\\jibx\\lib to your classpath eg

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

and then do a javac

As there are some import errors set the class path properly as Satya said, And the your current class in some directory you should compile it with -d attribute of javac As shown below

javac -d . YourfileName.java

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM