Compiles but....

alirght i debugged the program, but when i enter the fraction to be added it gives me an error message in the execution screen. can someone try to run this program on jcreator and tell me whats wrong?import java.util.Scanner;
public class RationalTest
   public static void main( String args[] )
      Scanner input = new Scanner( System.in );
      int numerator;
      int denominator;
      int digits;
      Rational rational1;
      Rational rational2;
      Rational result;
      System.out.print( "Enter numerator 1: " );
      numerator = input.nextInt();
      System.out.print( "Enter denominator 1: " );
      denominator = input.nextInt();
      rational1 = new Rational( numerator, denominator );
      System.out.print( "Enter numerator 2: " );
      numerator = input.nextInt();
      System.out.print( "Enter denominator 2: " );
      denominator = input.nextInt();
      rational2 = new Rational( numerator, denominator );
      System.out.print( "Enter precision: " );
      digits = input.nextInt();
        int choice = getMenuChoice();
      while ( choice != 5 )
          switch ( choice )
           case 1:
               result = rational1.sum( rational2 );
               System.out.printf( "a + b = %s = %s\n",
                    result.toString(),
                    result.toFloatString( digits ) );
               break;
           case 2:
               result = rational1.subtract( rational2 );
               System.out.printf( "a - b = %s = %s\n",
                   result.toString(),
                   result.toFloatString( digits ) );
                   break;
           case 3:
               result = rational1.multiply( rational2 );
               System.out.printf( "a * b = %s = %s\n",
                   result.toString(),
                   result.toFloatString( digits ) );
               break;
            case 4:
               result = rational1.divide( rational2 );
               System.out.printf( "a / b = %s = %s\n",
                   result.toString(),
                   result.toFloatString( digits ) );
               break;
         choice = getMenuChoice();
   private static int getMenuChoice()
      Scanner input = new Scanner( System.in );
      System.out.println( "1. Add" );
      System.out.println( "2. Subtract" );
      System.out.println( "3. Multiply" );
      System.out.println( "4. Divide" );
      System.out.println( "5. Exit" );
      System.out.print( "Choice: " );
      return input.nextInt();
   class Rational
            private int num;
            private int den;
     public Rational ( int num, int den )
             if ( den == 0 )
            System.out.println( " Division by 0 ");
            this.num = 0;
            this.den = 1;
           else
     this.num = num;
     this.den = den;
public Rational sum( Rational rhs )
    int numerator = (this.num * rhs.den + rhs.num * this.den );
    int denominator = ( this.den * rhs.den );
    int gcf = gcf( numerator, denominator );
    numerator /= gcf;
    denominator /= gcf;
    Rational ans = new Rational( numerator, denominator );
    return ans;
public Rational subtract( Rational rhs )
    int numerator = (this.num * rhs.den - rhs.num * this.den );
    int denominator = ( this.den * rhs.den );
    int gcf = gcf( numerator, denominator );
    numerator /= gcf;
    denominator /= gcf;
    Rational ans = new Rational( numerator, denominator );
    return ans;
public Rational multiply( Rational rhs )
    int numerator = (this.num * rhs.num );
    int denominator = ( this.den * rhs.den );
    int gcf = gcf( numerator, denominator );
    numerator /= gcf;
    denominator /= gcf;
    Rational ans = new Rational( numerator, denominator );
    return ans;
   public Rational divide( Rational rhs )
    int numerator = (this.num * rhs.den );
    int denominator = ( this.den * rhs.num );
    int gcf = gcf( numerator, denominator );
    numerator /= gcf;
    denominator /= gcf;
    Rational ans = new Rational( numerator, denominator );
    return ans;
   public String toFloatString( int digits )
             return String.format ( "%" + digits + "f" + this.toFloat() );
   public double toFloat()
             return ( double ) this.num / ( double ) this.den;
   public String toString()
             return this.num + "/" + this.den;
   public static int gcf ( int x, int y )
        int min = ( x < y ? x : y );
        for ( int i = min; i >= 1; i-- )
              if ( x % i == 0 && y % i == 0 )
                    return i;
        return 1;
}

i would have, but the execution screen wont let me
copy and paste........any help....?Maybe copy it by hand?

Similar Messages

  • My B+Tree can compile but have runtime error ... i can't tink why ...

    Sorry to bother anyone ... i have spent almost 3 weeks trying to debug the problem...
    My B+ Tree can compile but can't run as it throw invalid Null pointer Exception ..
    I suspected the error is in the split (int order ) method in the BTreeNode class but i can't remedy for it
    This my program code
    public class BTree {
    * The order of the B-Tree. All nodes of the B-Tree can store up to 2*order key values.
    private int order;
    * The number of key (with associated data values) stored in the B-Tree.
    private int count;
    * The root node of the B-Tree
    private BTreeNode root;
    * The first leaf node in the B-Tree. This field is used to give the starting point for sequential
    * access to the keys and data stored in the leaf nodes.
    private BTreeNode first;
    * The last leaf node in the B-Tree. This field is used to give the starting point for reverse
    * sequential access to the keys and data stored in the leaf nodes.
    private BTreeNode last;
    * A change count that can be used to invalidate iterators. This field is updated whenever a key plus data pair
    * is added to the B-Tree (or the data associated with a key is changed), or when a key plus data pair are
    * deleted from the B-Tree.
    private int changeCount = 0;
    // WHEN DOING ASSIGNMENT 5, DO NOT ADD ANY ADDITIONAL FIELDS TO THIS CLASS
    // You will loose marks if you add additional fields to this class. The fields above are all that
    // you need. If you need a variable in a method, use a local variable. I have seen too many
    // assignments where students add fields rather than create local variables. Hopefull the threat
    // of loosing (quite a few) marks will help reduce this habit.
    * A general exception class for errors when constructing or manipulating a B-Tree. Use the string
    * parameter to the constructor to say what the error really is.
    public class BTreeError extends RuntimeException {
    public BTreeError(String reason) {
    super(reason);
    * A constructor that creates an empty B-Tree of the given order.
    * <p/>This is the only constructor provided at the moment for this BTree class. Could consider
    * adding the equivalent of a 'copy constructor' that creates a new BTree object from an existing
    * BTree object.Constructor
    * creates the root of a btree
    * A constructor that creates an empty B-Tree of the given order.
    * <p/>This constructor need to copy the order parameter to the field of same name, and initialise the
    * root, cound, first and last fields of the BTree object.
    * @param order The order of the BTree.
    public BTree(int order) {
    count = 0;
    this.order = order;
    root = new BTreeNode(true, null, -1, null, null);
    first = root;
    last = root;
    * A method to return a SequentialIterator object that is positioned just before the first key
    * of the BTree object.
    * <p/>Do not modify this method.
    * @return A SequentialIterator object.
    public SequentialIterator iterator() {
    return new BTreeIterator();
    * A mehtod to return a SequentialIterator object that is positioned at a key found through a call
    * to the searchFor() method.
    * <p/>Do not modify this method.
    * @param position A SearchPosition() object that usually has been returne by a call to the searchFor() method.
    * @return A SequentialIterator object initialised to start at particular key in the BTree.
    public SequentialIterator iterator(SearchPosition position) {
    return new BTreeIterator(position);
    * A method to return a string representationo the BTree.
    * <p>The format of the string is:
    * <pre>BTree: Order=<digits>, size=<digits>, root=<BTreeNode string></pre>
    * <p/>Do not modify this method.
    * @return A string to represent the BTree
    public String toString() {
    StringBuffer s = new StringBuffer("BTree: Order=");
    s.append(order).append(", size=").append(size()).append(", root=").append(root.toString());
    return s.toString();
    * Method to determine the number of records stored in the B-Treee.
    * <p/>Do not modify this method
    * @return the number of records in the B-Tree.
    public int size() {
    return count;
    * method to return the order of the B-Tree.
    * <p/>
    * <p>This is the smallest number of key values for all nodes
    * except the root node. The maximum number of key values in a node is 2*order, and the maximum number
    * of child nodes for a node is 2*order+1.
    * <p/>Do not modify this method.
    * @return The order of the B-tree.
    public int order() {
    return order;
    * Insert a key plus data value into the BTree.
    * <p/>This method needs to locate the leaf node in which the key + data value should be
    * inserted, and then call the insertLeaf() method of BTreeNode to do the insertion.
    * <p/>This method will always result in a change to the BTree, so it should increment
    * the change count.
    * <p/>The method may result in only the data associated with an existing ke being changed,
    * so incrementing the count field should be done in the BTreeNode method (if needed).
    * <p/>This is one of the method you need to complete for assignment 5.
    * @param key The key associated with the data value to be added to the B-Tree
    * @param data The data value to be added (with it's associated key) to the B-Tree.
    public void add(Comparable key, Object data) {
    // you need to add the code for this method
    // i added
    BTreeNode btNode = root;
    while (!btNode.isLeaf) {
    int i=0;
    while(key.compareTo(btNode.keys) > 0) {
    i++;
    if (i == btNode.numberOfKeys) break;
    btNode = btNode.childNodes[i];
    btNode.insert(key,data);
    if (root.numberOfKeys == order*2-1) root.split(order);
    * insert a object with the given key into the tree
    //KeyNode keyNode = new KeyNode(key, data);
    // BTreeNode keyNode = new BTreeNode(key,data);
    BTreeNode btNode = root;
    while (!btNode.isLeaf) {
    int i=0;
    while(key.compareTo(btNode.key(i)) > 0) {
    i++;
    if (i == btNode.numberOfKeys())
    break;
    btNode = btNode.child(i); }
    System.out.println("hmm1");
    btNode.insert(key,data );
    System.out.println("hmm2");
    if (root.numberOfKeys == order*2-1)
    System.out.println("hmm3");
    root.split(order);
    System.out.println("hmm4");
    * This method searches the B-Tree for an occurence of the key in a leaf node and returns the result
    * of the search in a SearchPosition object.
    * <p/>Note that the key may occur in an interior node of the BTree without occuring in the leaf
    * nodes. This can be the result of a deletion operation. This method need to search down to the
    * leaf node that should contain the key if the key and associated data is in the B-Tree, and then
    * scan through the keys in the leaf node for the search key.
    * <p/>The result of the search is returned as a SearchPosition object, as this allow the return
    * of the success or failure of the search, as well as the data belonging to the key. It also
    * allows position information to be returned so that an interator can be initialised with the
    * key as the starting position for subsequent sequential access to adjacent keys.
    * <p/>This is one of the method you need to implement.
    * <p/>Implementation nodes:<br>
    * You need to find the leaf node that may contain the key (same code as for add()), then
    * scan the leaf BTreeNode for the search tree. You can do this within this method, as you
    * have total access to the fields and methods of BTreeNode (as BTreeNode is an inner class
    * of BTree). If you find the key, construct and return a SearchPosition object with the appropriate
    * details of the position, otherwise construct add return a SearchPosition object that indicates the
    * search failed.
    * @param key The key to search for in the BTree
    * @return A SearchPosition object returning the data and position information for the search
    public SearchPosition searchFor(Comparable key) {
    // You need to add the code for this method. The code below simply creates a
    // SearchPosition object which indicates an unsuccessful search.
    return new SearchPosition(false, null, -1);
    * A method to delete a node from the BTree.
    * <p/>The method should return the data object that was deleted when the key plus data object pair
    * are deleted from the B-tree.
    * <p/>The method should throw a BTreeError exception (with an appropriate reason string) if the
    * key is not found in the B-tree.
    * <p/>This is a method you can implement for bonus marks in Assignment 5.
    * <p/>Implementation notes:<br>
    * The easiest way to proceed is to use searchFor() to determine if they key is in the BTree, and
    * (if it is in the B-tree) to return position information about the key. Throw an exception if the
    * key is not in the B-tree, otherwise keep a copy of the data assocaited with the key (to return),
    * then for the leaf node containing the key (a BTreeNode object), call the deleteLeafNodeKey() method,
    * passing across the leaf key index of the key (so you don't have to find it again in the leaf node).
    * After this method deletes the key, return the data you saved as the method result.
    * @param key The key to delete (along with it's associated data) from the B-tree.
    * @return The data associated with the key that was deleted.
    public Object delete(Comparable key){
    // You need to add the code for this method.
    return null;
    * The inner class BTreeNode is used to represent the nodes in the B-Tree.
    * <p/>The nodes in the BTree are of two types:
    * <ol>
    * <li>Leaf nodes that contain the keys and associated data values, stored in ascending key order.<br>
    * These leaf nodes have next and previous pointers to adjacent leaf nodes to allow an easy
    * implementation of an iterator class to provide bi-directional sequential access to the keys stored
    * in the BTree nodes.
    * <li>Interior nodes that contain keys and links to child nodes (that are either all internal nodes
    * or all leaf nodes), organised as the node of a multi-way search tree. The interior nodes have
    * one more child node link than keys. The child node link at index k is to a node with keys that
    * are all less than the key at index k in this node. The link at index k+1 is to a child node
    * with keys that are all greater than or equal to the key at index k.
    * </ol>
    * The BTreeNode class allows you to create these two 'types' of nodes, depending on the parameters
    * passed to the constructor.
    * <p/>There are methods that should only be called for leaf nodes and methods that should only be
    * called for interior nodes. These methods should throw an exception if called by the wrong node
    * type. This class should really be designed using inheritance to mimic the pascal/C++ variant
    * record structure, but this design is relatively easy to understand and to implement.
    * <p/>Note that this class is an inner class of BTree, and so all objects will have an implict
    * reference to the BTree container object. This class has direct access to all the fields of the
    * BTree contaner object. In particular, the order of the BTree is available, hence this class
    * does not need to keep a copy of the order as a field.
    * <p/>Skeleton class provided for Objects and Algorithms Assignment 5
    * <p/>Only modify the methods where the JavaDoc indicates that you need to provide code.
    * @author a.sobey
    * @version 1.0
    * Date: 16/05/2005
    public class BTreeNode {
    * The actual number of key values stored in the BTreeNode. <br>Note that the BTree node has an implicit
    * reference to the containing BTree object, and the maximum number of nodes that can be stored in a
    * a BTreeNode (except temporarily during the split operation) is twice the <i>order</i> of the BTree.<br>
    * This field is valid for both internal and leaf nodes.
    private int numberOfKeys = 0;
    * The array of pointers to child nodes of this node. Only <i>(numberOfKeys+1)</i> are valid if <i>numberOfKeys</i>
    * is non-zero.<br>
    * This array is only valid and created for internal nodes - this array is not created for leaf nodes.<br>
    * There is space in the array created for one additional child node link - this makes the coding for
    * splitting of an internal node easier to implement.
    private BTreeNode[] childNodes;
    * A reference to the parent node of this node.<br>
    * This link is null if this node is the root node of the tree of BTreeNodes.<br>
    * This node is valid for both internal and leaf nodes.
    private BTreeNode parent;
    * The index in the parent node's array of links (the <i>childNodes</i> array) for the link to this node.<br>
    * This value should be set to -1 if this node is the root node (and so has no parent node).<br>
    * This field is valid for both internal and leaf nodes.
    private int parentIndex;
    * A link to the next leaf node in the B-tree, provided to allow easy sequential access of the keys
    * and values stored in the B-tree.<br>
    * This field is only valid if the node is a leaf node. For non-leaf nodes set the value to null.<br>
    * For leaf nodes, set the value to null if this node is the last leaf node in the B-tree.
    private BTreeNode next;
    * The link to the previous leaf node in the B-tree, provided ot allow easy reverse sequential access of the keys
    * and values stored in the B-Tree.<br>
    * This values should be set to null if this node is a leaf node but is the first leaf node in the B-Tree, or
    * if this node is not a leaf node.<br>
    * This field is only used in leaf nodes.
    private BTreeNode previous;
    * An array of comparable key objects that are stored in this node of the B-tree.<br>
    * Only the first <i>numberOfKey</i> values in the array are valid.<br>
    * The maximum number of keys in a node is 2*<i>order</i>, however there is space in this array
    * for one additional value to make the coding of the node splitting operation easier to implement.<br>
    * This field is valid for both internal and leaf nodes.
    private Comparable[] keys;
    * An array of data values associated with the keys stored in this leaf node of the B-tree.<br>
    * Only the first <i>numberOfKey</i> values are valid.<br>
    * The maximum number of data values in a node is 2*<i>order</i>, however there is space in this array
    * for one additional value to make the codingof the leaf node splitting operation easier to implement.<br>
    * This field is only valid for leaf nodes - for interior nodes this array is not created.
    private Object[] data;
    * A boolean value to indicate if the node is a leaf node or not. The structure of the remainder of the node
    * depends on this value (would be nice to have variant records in Java ...).<br>
    * This field is valid for both leaf and internal nodes.
    private boolean isLeaf;
    private int order;
    * The constructor for a BTreeNode.
    * <p/>The code for the constructor is provided - do not modify this constructor.
    * @param isLeaf True if this node is a leaf node.
    * @param parent A link to the parent node or null if this node is the root node of the B-Tree
    * @param parentIndex The index of the link in the array of child node linkes in the parent node that points to this node.
    * @param previous A link to the previous leaf node for sequentail access, or null if not a leaf node or no previous leaf nodes.
    * @param next A link to the next leaf node for sequential access, or null if not a leaf node or the last leaf node.
    public BTreeNode(boolean isLeaf, BTreeNode parent, int parentIndex, BTreeNode previous, BTreeNode next) {
    this.parent = parent;
    this.parentIndex = parentIndex;
    this.previous = previous;
    this.next = next;
    this.isLeaf = isLeaf;
    if (isLeaf)
    data = new Object[2 * order + 1];
    else
    childNodes = new BTreeNode[2 * order + 2];
    keys = new Comparable[2 * order + 1];
    public BTreeNode( int order, BTreeNode parent)
    this.order = order;
    this.parent=parent;
    this.keys = new Comparable[2*order-1];
    this.data = new Object[2*order-1];
    this.childNodes=new BTreeNode[2*order];
    this.isLeaf=true;
    * Returns the number of keys in this BTreeNode. Note that within the code in BTree you have access
    * to all the fields of BTreeNode, so this method is not strictly necessary.
    * @return The number of keys in this BTreeNode object.
    public int numberOfKeys() {
    return numberOfKeys;
    * Returns the container BTree object for this BTreeNode object. You may like to check that container objects
    * are the same when manipulating two BTreeNode objects.
    * @return the containing BTree object.
    public BTree container() {
    return BTree.this;
    * A private method to return a string representation of the array <i>keys</i>. This method is used in
    * the toString() method for this class.<br>
    * Do not modify the code provided for this method.
    * @return A string representation of this nodes array of keys.
    private String keyString() {
    StringBuffer s = new StringBuffer("{");
    for (int index = 0; index < numberOfKeys; index++)
    s.append(index > 0 ? "," + keys[index] : keys[index]);
    return s.append("}").toString();
    * A private method to return a string representation of the array of data values stored in a leaf node.<br>
    * This method is used in the toString() method of BTreeNode. The method does not check if this node is a
    * leaf node, as it is not intended to be called directly from outside of this class, and the toString()
    * method only calls this method if the node is a leaf node.<br>
    * Do not modify the provided code for this method.
    * @return a string representation of the data values array of a BTreeNode.
    private String dataString() {
    StringBuffer s = new StringBuffer("(");
    for (int index = 0; index < numberOfKeys; index++)
    s.append(index > 0 ? "," + data[index] : data[index]);
    return s.append(")").toString();
    * A private method to return a string prepresentation of the array of child node links in an interior node.<br>
    * This method is used in the toString() method. This method does not check if this node is an interior
    * node, so you must take care to only call this method for interior nodes.<br>
    * Do not modify the provided code for this method.
    * @return A string representation of the array of child nodes of this BTreeNode.
    private String childString() {
    StringBuffer s = new StringBuffer("<");
    for (int index = 0; index < numberOfKeys + 1; index++)
    s.append(childNodes[index] + (index == numberOfKeys ? "" : ","));
    return s.append(">").toString();
    * The toString method provides a string representation of a BTreeNode.<br> This particular method does not
    * include the details of all the fields of a BTreeNode. While debugging your code, you may like to include
    * more information (such as the parentIndex value), but in your final submission you must have the code
    * as provided in the skeleton BTreeNode class provided to you.
    * @return A string representation of a BTreeNode.
    public String toString() {
    if (isLeaf)
    return (new StringBuffer("[")).append(numberOfKeys)
    // .append(',').append(parentIndex) // uncomment this line if need to check parentIndex values
    .append(',').append(keyString()).append(',').append(dataString()).append(']').toString();
    else
    return (new StringBuffer("[")).append(numberOfKeys)
    //.append(',').append(parentIndex) // uncomment this line if need to check parentIndex values
    .append(',').append(keyString()).append(',').append(childString()).append(']').toString();
    * Returns the key with the given index in this node. Throws a BTreeError exception if the index is not valid.<br>
    * Do not modify this provided code.
    * @param index The index of the key.
    * @return The key value at the given index.
    public Comparable key(int index) {
    if (index < 0 || index >= numberOfKeys)
    throw new BTreeError("Key index out of range - value = " + index);
    return keys[index];
    * Returns the child node at the provided index into the childNodes array.<br>
    * A BTreeError exception is thrown if the node is not an internal
    * node or if the index is not valid.
    * <p/>Note that the child node returned will have keys that are all less than the key stored
    * in the <i>keys</i> array of this node at the given index value (except the last childNode
    * at index numberOfkeys, as this node has keys that are all greater than or equal to the last
    * key value stored in this node).<br>
    * Do not modify the provided code for this method.
    * @param index The index into the array of child nodes for this internal BTreeNode object.
    * @return The child node link.
    public BTreeNode child(int index) {
    if (isLeaf) throw new BTreeError("child() called for a leaf node");
    if (index < 0 || index > numberOfKeys)
    throw new BTreeError("Child node index out of range - value = " + index);
    return childNodes[index];
    * Returns the data value associated with the key at the given index. An BTreeError exception is thrown if the
    * node is not a leaf node or if the index is invalid.
    * <p/>Do not modify the provided code for this method.
    * @param index The index of the key assocaited with the data value.
    * @return The data value associated with the key with given index.
    public Object data(int index) {
    if (!isLeaf) throw new BTreeError("data() called for an internal node");
    if (index < 0 || index >= numberOfKeys)
    throw new BTreeError("Data index out of range - value = " + index);
    return data[index];
    * This method is used to determine if this node is a leaf node.
    * @return True if this node is a leaf node.
    public boolean isLeaf() {
    return isLeaf;
    * Inserts the (key, data) pair into this BTreeNode object.
    * <p/>You must supply the code for this method.
    * <p/>Implementation notes:<br>
    * <ol>
    * <li>Throw an exception if this node is not a leaf node.
    * <li>Scan the keys array for index of the key greater than or equal to the insertion key.
    * <li>If the key at the index is equal to the insertion key, update the data field and return - you are done.
    * <li>Otherwise shuffle the keys values from the insertion index along to make a hole for the insertion key,
    * and insert the insertion key into the keys array. Do the same for the data array values to insert the
    * new data value into the data array at the insertion index.
    * <li>increment the number of keys, and increment the container BTree object's count field.
    * <li>If the number of keys in the node is now no more than 2*order, you are done, so simply return.
    * <li>Otherwise the node has (2*order+1) key values, and need to split. The split operation leaves the first
    * <i>order</i> keys and data values in this node (and so the node's numberOfKeys value will become
    * <i>order</i>, and moves the remaining (order + 1) keys and data values to a new BTreeNode leaf node
    * that you need to create.<br>
    * You need to fix up the previous and next fields of this leaf node and the new leaf node you have created.<br>
    * Two sub-cases:
    * <ol>
    * <li>If this node is the root node (i.e., it does not have a parent node), the split of this node will create
    * a new root node, with a single key (the key at index (order+1)) and this node and the new BTreeNode as
    * the child nodes. In my solution I used a call to the method newRootNode to do this. The newRootNode()
    * method will also be used when a split of an interior node creates a new root node. See the JavaDoc for
    * details of what the newRootNode() method should do. Once the new root node has been created, and all
    * the fields updated due to the split, you are done.
    * <li>Otherwise we need to insert in this node's parent node the middle key (at index (order+1) and the
    * new node that we created. This is done by the method insertInterior(). The method is passed the
    * key to insert (at location this.parentIndex in the keys array of the parent node), the index to
    * to insert the key (this.parentIndex), and the new leaf node (that will be inserted at index
    * (this.parentIndex+1) in the parent node's child links array).
    * </ol>
    * </ol>
    * @param key The key to insert into the leaf node.
    * @param data The key's corresponding data value.
    public void insertLeaf(Comparable key, Object data) {
    // You need to provide the code for this method.
    // BTreeNode temp = new
    int size = this.data.length;
    int counter = 0;
    this.keys[size] = key;
    this.data[size] = data;
    sort(size);
    public int compareTo(Comparable o2) {
    // Integer o1 = (Integer) o2;
    return (((Integer)o2).compareTo(this));
    *split()
    *Splits a node into to nodes. This can only be done, if the node is full
    *The midlest key go up into the parent, the left ones of them rest in
    *this node, and the right ones go into a new node.
    private BTreeNode split(int order) {
    if (numberOfKeys == order*2-1) {
    BTreeNode right = null;
    if (parent == null) { // algo for the root-node
    BTreeNode left = new BTreeNode(order, this);
    right = new BTreeNode(order, this);
    for (int i=0; i<order-1; i++) {
    left.keys[i] = keys[i];
    left.data[i] = data[i];
    right.keys[i] = keys[order+i];
    right.data[i] = data[order+i];
    if (!isLeaf()) {
    for (int i=0; i<order; i++) {
    left.childNodes[i] = childNodes[i];
    left.childNodes[i].parent = left;
    right.childNodes[i] = childNodes[order+i];
    right.childNodes[i].parent = right;
    left.isLeaf = false;
    right.isLeaf = false;
    } else isLeaf = false;
    keys[0] = keys[order-1];
    numberOfKeys = 1;
    left.numberOfKeys = order-1;
    right.numberOfKeys = order-1;
    for (int i=1; i<order*2-1; i++) {
    keys[i] = null;
    data[i] = null;
    childNodes[i+1] = null;
    childNodes[0] = left;
    childNodes[1] = right;

    * Don't post that much code. There should never be a reason to. You should be able to break your code down into small enough pieces that you can post a small example that demonstrates your problem.
    * When you do post code, use [code] and [/code] tags to make it readable. You can use the code button on the message entry page.
    * The stack trace will tell you which line the NPE occurred on, where it was called from, where that was called from, etc. You can use that to help you find your error. Look at the line it's complaining about. What references are on that line followed by a dot, and what arrays do you try to access the elements of. One of those must be null.
    * Now that you know what[b] is null, put in a bunch of print statements to track [b]how it got to be null.

  • Trigger compiles but errors out during execution

    You guys wouldn't like this. Its about a trigger !
    Below is a trigger i've found in OTN. I've a similair requirement. The below trigger will compile . But, during execution i get
    ORA-00936: missing expression during executionI have this feeling that the last line in the INSERT statment is causing the issue.
    create or replace trigger trg_test
    before insert or update on central_dtls.emp_config
    for each row
    declare
    v_schema varchar2(100);
    v_sql_stat varchar2(32767);
    begin
    select schema_name into v_schema from central_dtls.master_config where company_id= :new.id;
                                  v_sql := 'insert into ' ||v_schema||'..emp_config_local
                                  company_id,
                                  values
                                   ||:new.col1||', '
                                   ||:new.col2||', '
                                   ||:new.lastcol||  ')';    ----- Potential issue in this line
    exception
    when others then ......;
    end;
    /I've tried the below things.
    ||:new.lastcol  ');';   --- Trigger Will not compile
    ||:new.lastcol||  ')';    --- Trigger Will compile , but, will get "ORA-00936: missing expression" during execution
    ||:new.lastcol|| ');';   --- Trigger Will compile , but, will get "ORA-00936: missing expression" during execution

    You have:
                                  v_sql := 'insert into ' ||v_schema||'..emp_config_local Try with:
                                  v_sql := 'insert into ' ||v_schema||'.emp_config_local (only one dot between schema and table name :) )

  • PLSQL compiles but doesn't run.. I've declared it everywhere but still..

    PLSQL compiles but doesn’t run.. I’ve declared it everywhere but still..
    Afternoon.. Hopefully a quick one for someone.. I’m trying to run a Concurrent Program in ORACLE Financials using a Data Template derived BI Publisher report.
    Error message received..
    SUBIXCLT module: UofS Expense Claim Tracking Report
    +--------------------------------------------------------------------------
    All Parameters: raisedby=:status=:claimant=:expense_date_from=:expense_date_to=:LP_ORDERED_BY=Expense Report Number
    Data Template Code: SUBIXCLT
    Data Template Application Short Name: PO
    Debug Flag: N
    {raisedby=, claimant=, expense_date_to=, expense_date_from=, status=, LP_ORDERED_BY=Expense Report Number}
    Calling XDO Data Engine...
    [060410_025628319][][STATEMENT] Start process Data
    [060410_025628324][][STATEMENT] Process Data ...
    [060410_025628329][][STATEMENT] Executing data triggers...
    [060410_025628329][][STATEMENT] BEGIN
    SUBIXCLT.claimant := :claimant ;
    SUBIXCLT.expense_date_from := :expense_date_from ;
    SUBIXCLT.expense_date_to := :expense_date_to ;
    SUBIXCLT.raisedby := :raisedby ;
    SUBIXCLT.status := :status ;
    SUBIXCLT.lp_ordered_by := :lp_ordered_by ;
    :XDO_OUT_PARAMETER := 1;
    END;
    l_flag Boolean;
    BEGIN
    l_flag := SUBIXCLT.BEFOREREPORT(L_ORDERED) ;
    if (l_flag) then
    :XDO_OUT_PARAMETER := 1;
    end if;
    end;
    [060410_025628356][][EXCEPTION] SQLException encounter while executing data trigger....
    java.sql.SQLException: ORA-06550: line 4, column 33:
    PLS-00201: identifier 'L_ORDERED' must be declared
    ORA-06550: line 4, column 1:
    PL/SQL: Statement ignoredThe Data Template
    The Data Template
    <?xml version="1.0" encoding="utf-8" ?>
    - <dataTemplate name="UofS_OutstandngExpenses_Report" defaultPackage="SUBIXCLT" dataSourceRef="FINDEV" version="1.0">
    - <properties>
      <property name="xml_tag_case" value="upper" />
      <property name="include_parameters" value="true" />
      <property name="debug_mode" value="on" />
      </properties>
    - <parameters>
      <parameter name="claimant" dataType="character" defaultValue="" />
      <parameter name="expense_date_from" dataType="date" defaultValue="" />
      <parameter name="expense_date_to" dataType="date" defaultValue="" />
      <parameter name="raisedby" dataType="character" defaultValue="" />
      <parameter name="status" dataType="character" defaultValue="" />
      <parameter name="lp_ordered_by" dataType="character" defaultValue="" />
      </parameters>
    - <dataQuery>
      <dataTrigger name="beforeReportTrigger" source="SUBIXCLT.BEFOREREPORT(L_ORDERED)" />
    - <sqlStatement name="Q1">
    - <![CDATA[
    SELECT DISTINCT
    erh.invoice_num,
    pap.full_name EMP_CLAIMING,
    DECODE(NVL(erh.expense_status_code, 'Not yet Submitted (NULL)'), 'CANCELLED', 'CANCELLED',
         'EMPAPPR', 'Pending Individuals Approval',      'ERROR', 'Pending System Administrator Action',
         'HOLD_PENDING_RECEIPTS     ', 'Hold Pending Receipts', 'INPROGRESS', 'In Progress', 'INVOICED', 'Ready for Payment',
         'MGRAPPR', 'Pending Payables Approval', 'MGRPAYAPPR', 'Ready for Invoicing', 'PAID', 'Paid',
         'PARPAID', 'Partially Paid',     'PAYAPPR', 'Payables Approved',     'PENDMGR', 'Pending Manager Approval',
         'PEND_HOLDS_CLEARANCE', 'Pending Payment Verification',     'REJECTED', 'Rejected',     'RESOLUTN',     'Pending Your Resolution',
         'RETURNED',     'Returned',     'SAVED',     'Saved',     'SUBMITTED',     'Submitted',     'UNUSED',     'UNUSED',
         'WITHDRAWN','Withdrawn',     'Not yet Submitted (NULL)') "EXPENSE_STATUS" ,
    NVL(TO_CHAR(erh.report_submitted_date,'dd-MON-yyyy'),'NULL') SUBMIT_DATE,
    NVL(TO_CHAR(erh.expense_last_status_date,'dd-MON-yyyy'),'NULL') LAST_UPDATE,
    erh.override_approver_name ER_Approver,
    fu.description EXP_ADMIN,
    erh.total,
    erh.description 
    FROM
    AP_EXPENSE_REPORT_HEADERS_all erh,
    per_all_people_f pap, fnd_user fu
    WHERE erh.employee_id = pap.person_id
    AND fu.user_id = erh.created_by
    AND NVL(erh.expense_status_code, 'Not yet Submitted') NOT IN  ('MGRAPPR', 'INVOICED', 'PAID', 'PARPAID')
    AND pap.full_name = NVL(:claimant, pap.full_name)
    AND TRUNC(erh.report_submitted_date) BETWEEN NVL(:expense_date_from, '01-JAN-1999') AND NVL(:expense_date_to,'31-DEC-2299')
    AND fu.description = NVL(:raisedby,fu.description)
    AND erh.expense_status_code = NVL(:status,erh.expense_status_code) &LP_ORDERED_BY
      ]]>
      </sqlStatement>
      </dataQuery>
      <dataTrigger name="beforeReportTrigger" source="SUBIXCLT.BEFOREREPORT(L_ORDERED)" />
    - <dataStructure>
    - <group name="G_XP_CLM_TRACKNG" source="Q1">
      <element name="INVOICE_NUM" value="INVOICE_NUM" />
      <element name="EMP_CLAIMING" value="EMP_CLAIMING" />
      <element name="EXPENSE_STATUS" value="EXPENSE_STATUS" />
      <element name="SUBMIT_DATE" value="SUBMIT_DATE" />
      <element name="LAST_UPDATE" value="LAST_UPDATE" />
      <element name="LP_ORDERED_BY" dataType="varchar2" value="SUBIXCLT.LP_ORDERED_BY" />
      </group>
      </dataStructure>
      </dataTemplate>The PL SQL..
    The PL SQL..
    CREATE OR REPLACE PACKAGE Subixclt IS
    L_ORDERED  VARCHAR2(50);
    RAISEDBY VARCHAR2(50);
    STATUS VARCHAR2(50);
    CLAIMANT VARCHAR2(50);
    LP_ORDERED_BY VARCHAR2(50);
    FUNCTION BEFOREREPORT(L_ORDERED IN VARCHAR2) RETURN VARCHAR2;
    EXPENSE_DATE_FROM DATE;
    EXPENSE_DATE_TO DATE;
    --RETURN VARCHAR2;
    END;
    CREATE OR REPLACE PACKAGE BODY Subixclt IS
    FUNCTION BEFOREREPORT(L_ORDERED IN VARCHAR2)RETURN VARCHAR2 IS
    BEGIN
    Fnd_File.PUT_LINE(Fnd_File.LOG,'L_ORDERED'||L_ORDERED);
    DECLARE
    LP_ORDERED_BY VARCHAR2(50);
    L_ORDERED  VARCHAR2(50);
    RAISEDBY VARCHAR2(50);
    STATUS VARCHAR2(50);
    CLAIMANT VARCHAR2(100);
    EXPENSE_DATE_FROM DATE;
    EXPENSE_DATE_TO DATE;
    BEGIN
    IF (LP_ORDERED_BY='Expense Report Number') THEN
         LP_ORDERED_BY :='order by 1 asc;';
      ELSIF (LP_ORDERED_BY='Person Claiming') THEN
         LP_ORDERED_BY :='order by 2 asc;';
      ELSIF (LP_ORDERED_BY='Submit Date') THEN
      LP_ORDERED_BY :='order by 4 asc;';
      END IF;
    RETURN(L_ORDERED);
    --RETURN NULL;
    END;
    END;
    END;Thanks for looking..
    Steven
    Edited by: Mr_Alkan on Jun 4, 2010 3:35 PM

    One has to initialise a session first for use with Oracle Apps if you want to make it run as a concurrent job.
    Any decleration within your package will not be recognised unless initialisation is sucessful.
    Investigate the built-in packages:
    FND_GLOBAL - for initialisation
    FND_SUBMIT - for setting session relevant parameters
    -- function returns true or false depending on whether the initialisation was sucessful or not
    create or replace function is_Init_OK (p_User_Name       in varchar2
                                          ,p_Responsibility  in varchar2
                                          ,p_Language        in varchar2) return boolean as
      b_Set_NLS   boolean;
      b_Set_Mode  boolean;
      r_ISet      fnd_Init := Get_Init_Set(p_User_Name, p_Responsibility);
      begin
        -- 1
        fnd_global.apps_initialize(r_ISet.User_ID, r_ISet.Resp_ID, r_ISet.App_ID);
        -- 2
        b_Set_NLS := fnd_submit.set_nls_options(p_Language);
        -- 3
        b_Set_Mode  := fnd_submit.set_mode (false);
        return (b_Set_Mode and b_Set_NLS and (    (r_ISet.Resp_ID is not null)
                                              and (r_ISet.User_ID is not null)
        exception
          when others then
            return false;
    end is_Init_OK;
    -- for example
    declare
      l_User_ID number = 'IMPORT_POST'; --- import post user
      l_Resp    number =  'Import and Posting responsibility' -- import posting responsibility
      l_Language varchar2(100) := 'AMERICAN';
      b_Init boolean := false;
      INIT_EXCEPTION exception;
    begin
      b_Init := is_Init_OK(l_User_ID, l_Resp, l_Language);
      if (not b_Init) then
        raise INIT_EXCEPTION;
      end if;
      -- conitnue with your processing
      exception 
        when others then
          when INIT_EXECPTION then
          when others then
    end;
    /

  • Applet compiles but does not appear...

    the applet compiles but does not appear :(
    all that appears is a blank box...hopefully someone can help
    import java.awt.*;
    import java.applet.*;
    import java.awt.event.*;
    public class program2 extends Applet implements ActionListener
         private Button btLeft, btRight, btUp, btDown, btBgYellow,
         btBgRed, btBgBlue, btBgOrange, btTxtRed,btTxtYellow, btTxtBlue,
         btTxtOrange, btFtHel, btFtCr, btFtTr, btFtSy;
         private MessagePanel messagePanel;
         private Panel p = new Panel();
         public void init()
              p.setLayout(new BorderLayout());
              messagePanel = new MessagePanel("Java is Life");
              messagePanel.setBackground(Color.white);
              //directional buttons
              Panel pButtons = new Panel();
              pButtons.setLayout(new FlowLayout());
              pButtons.add(btLeft = new Button());
              pButtons.add(btRight = new Button());
              pButtons.add(btUp = new Button());
              pButtons.add(btDown = new Button());
              //Background buttons
              Panel BgButtons = new Panel();
              BgButtons.setLayout(new FlowLayout());
              BgButtons.add(btBgRed = new Button());
              btBgRed.setBackground(Color.red);
              BgButtons.add(btBgYellow = new Button());
              btBgYellow.setBackground(Color.yellow);
              BgButtons.add(btBgBlue = new Button());
              btBgBlue.setBackground(Color.blue);
              BgButtons.add(btBgOrange = new Button());
              btBgOrange.setBackground(Color.orange);
              //text color buttons
              Panel txtButtons = new Panel();
              txtButtons.setLayout(new GridLayout(4,1));
              txtButtons.add(btTxtRed = new Button());
              btTxtRed.setBackground(Color.red);
              txtButtons.add(btTxtYellow = new Button());
              btTxtYellow.setBackground(Color.yellow);
              txtButtons.add(btTxtBlue = new Button());
              btTxtBlue.setBackground(Color.blue);
              txtButtons.add(btTxtOrange = new Button());
              btTxtOrange.setBackground(Color.orange);
              //font buttons
              Panel ftButtons = new Panel();
              ftButtons.setLayout(new GridLayout(4,1));
              ftButtons.add(btFtHel = new Button());
              ftButtons.add(btFtCr = new Button());
              ftButtons.add(btFtTr = new Button());
              ftButtons.add(btFtSy = new Button());
              //layout
              p.add(messagePanel, BorderLayout.CENTER);//set center 1st
              p.add(pButtons, BorderLayout.SOUTH);
              p.add(BgButtons, BorderLayout.NORTH);
              p.add(txtButtons, BorderLayout.EAST);
              p.add(ftButtons, BorderLayout.WEST);
              //listeners
              btLeft.addActionListener(this);
              btRight.addActionListener(this);
              btUp.addActionListener(this);
              btDown.addActionListener(this);
              btBgRed.addActionListener(this);
              btBgYellow.addActionListener(this);
              btBgBlue.addActionListener(this);
              btBgOrange.addActionListener(this);
              btTxtRed.addActionListener(this);
              btTxtYellow.addActionListener(this);
              btTxtBlue.addActionListener(this);
              btTxtOrange.addActionListener(this);
              btFtHel.addActionListener(this);
              btFtCr.addActionListener(this);
              btFtTr.addActionListener(this);
              btFtSy.addActionListener(this);
         //implement listener
         public void actionPerformed(ActionEvent e)
              if(e.getSource() == btLeft)
                   left();
              else if(e.getSource() == btRight)
                   right();
              else if(e.getSource() == btUp)
                   up();
              else if(e.getSource() == btDown)
                   down();
              else if(e.getSource() == btBgRed)
                   red();
              else if(e.getSource() == btBgYellow)
                   yellow();
              else if(e.getSource() == btBgBlue)
                   blue();
              else if(e.getSource() == btBgOrange)
                   orange();
              else if(e.getSource() == btTxtRed)
                   redText();
              else if(e.getSource() == btTxtYellow)
                   yellowText();
              else if(e.getSource() == btTxtBlue)
                   blueText();
              else if(e.getSource() == btTxtOrange)
                   orangeText();
              else if(e.getSource() == btFtHel)
                   helvetica();
              else if(e.getSource() == btFtCr)
                   courier();
              else if(e.getSource() == btFtTr)
                   times();
              else if(e.getSource() == btFtSy)
                   symbol();
         //directional methods :0)
         private void left()
              int x = messagePanel.getXCoordinate();
              if(x > 10)
                   messagePanel.setXCoordinate(x - 10);
                   messagePanel.repaint();
         private void right()
              int x = messagePanel.getXCoordinate();
              if(x < (getSize().width - 5))
                   messagePanel.setXCoordinate(x + 5);
                   messagePanel.repaint();
         private void up()
              int y = messagePanel.getYCoordinate();
              if(y < (getSize().height - 10))
                   messagePanel.setYCoordinate(y - 10);
                   messagePanel.repaint();
         private void down()
              int y = messagePanel.getYCoordinate();
              if(y < (getSize().height + 10))
                   messagePanel.setYCoordinate(y + 10);
                   messagePanel.repaint();
         //background methods :)
         private void red()
              messagePanel.setBackground(Color.red);
         private void yellow()
              messagePanel.setBackground(Color.yellow);
         private void blue()
              messagePanel.setBackground(Color.blue);
         private void orange()
              messagePanel.setBackground(Color.orange);
         //text color methods :)
         private void redText()
              messagePanel.setForeground(Color.red);
         private void yellowText()
              messagePanel.setForeground(Color.yellow);
         private void blueText()
              messagePanel.setForeground(Color.blue);
         private void orangeText()
              messagePanel.setForeground(Color.orange);
         private void helvetica()
              Font myfont = new Font("Helvetica", Font.PLAIN,12);
              messagePanel.setFont(myfont);
         private void courier()
              Font myfont = new Font("Courier", Font.PLAIN,12);
              messagePanel.setFont(myfont);
         private void times()
              Font myfont = new Font("TimesRoman", Font.PLAIN,12);
              messagePanel.setFont(myfont);
         private void symbol()
              Font myfont = new Font("Symbol", Font.PLAIN,12);
              messagePanel.setFont(myfont);

    You add everything to the Panel p but you never add that panel to the applet. What you probably want is to add everything to the applet. An applet is a special kind of panel so you can just change "p" to "this" everywhere in init and remove the declaration of p at the top.

  • Can compile but cannot run.

    Dear Java Guru,
    Wish to find out why I can compile but cannot run. I encounter the following error: 'Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/jai/JAI
    at saveasone.<init>(saveasone.java:29)
    at saveasone.main(saveasone.java:21)'
    This does not happen on one PC but happened on another PC.
    The one can compile is XP, the other which cannot compile is Win2k Professional. Is there any other possible cause ?
    Please advise.

    The problem probably lies in the Classpath. I think you are using different environments for compiling and running. If you are using an IDE for developing your code, you might have set the classpath correctly there but not in the executing environment. As about the OS's you mentioned, I think the problem is still with your Environment Settings than OS settings.

  • Program compiles, but does not run

    To: XCode Users <[email protected]>
    From: Brigit Ananya <[email protected]>
    Subject: Program compiles, but does not run
    I am trying to port a Java application from the PC to the Mac. I am using XCode and the program compiles, but it does not run.
    When I try to run the ...app, I get the message that the main class is not specified, etc.
    When I try to run the ...jar, I do not get the message that the main class is not specified, but I do get the message that there is no Manifest section for bouncycastle, etc.
    Here are the detailed messages I get in the Console when I try to run the program:
    When I try to run the ...app, I get the following message:
    1/9/09 7:21:17 AM [0x0-0x8c08c].com.AnanyaSystems.AnanyaCurves[2253] [LaunchRunner Error] No main class specified
    1/9/09 7:21:17 AM [0x0-0x8c08c].com.AnanyaSystems.AnanyaCurves[2253] [JavaAppLauncher Error] CallStaticVoidMethod() threw an exception
    1/9/09 7:21:17 AM [0x0-0x8c08c].com.AnanyaSystems.AnanyaCurves[2253] Exception in thread "main" java.lang.NullPointerException
    1/9/09 7:21:17 AM [0x0-0x8c08c].com.AnanyaSystems.AnanyaCurves[2253] at apple.launcher.LaunchRunner.run(LaunchRunner.java:112)
    1/9/09 7:21:17 AM [0x0-0x8c08c].com.AnanyaSystems.AnanyaCurves[2253] at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:50)
    1/9/09 7:21:17 AM [0x0-0x8c08c].com.AnanyaSystems.AnanyaCurves[2253] at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52)
    When I try to run the ...jar, I do get the following message:
    1/9/09 7:22:43 AM [0x0-0x8d08d].com.apple.JarLauncher[2262] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] Exception in thread "main"
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] java.lang.SecurityException: no manifiest section for signature file entry org/bouncycastle/asn1/DEREnumerated.class
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at sun.security.util.SignatureFileVerifier.verifySection(SignatureFileVerifier.java:377)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:231)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:176)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.util.jar.JarVerifier.processEntry(JarVerifier.java:233)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.util.jar.JarVerifier.update(JarVerifier.java:188)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.util.jar.JarFile.initializeVerifier(JarFile.java:325)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.util.jar.JarFile.getInputStream(JarFile.java:390)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at sun.misc.URLClassPath$JarLoader$1.getInputStream(URLClassPath.java:620)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at sun.misc.Resource.cachedInputStream(Resource.java:58)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at sun.misc.Resource.getByteBuffer(Resource.java:113)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.net.URLClassLoader.defineClass(URLClassLoader.java:249)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.security.AccessController.doPrivileged(Native Method)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    1/9/09 7:28:45 AM [0x0-0x8f08f].com.apple.JarLauncher[2277] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
    I do specify the main class in both, the Manifest file and the Info.plist file, in the correct way, "package.MainClass". Is there another place where I need to specify it?
    Why do I need org/bouncycastle/asn1/DEREnumerated.class, and how would I have to specify it in Manifest?
    I also posted these questions at Mac Programming at forums.macrumors.com and at Xcode-users Mailing List at lists.apple.com/mailman/listinfo, but I did not get any answer.
    Please help! Thanks!

    There was something wrong with my Info.plist file.
    So, here is my corrected Info.plist file:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
         <key>CFBundleDevelopmentRegion</key>
         <string>English</string>
         <key>CFBundleExecutable</key>
         <string>AnanyaCurves</string>
         <key>CFBundleGetInfoString</key>
         <string></string>
         <key>CFBundleIconFile</key>
         <string>AnanyaCurves.icns</string>
         <key>CFBundleIdentifier</key>
         <string>com.AnanyaSystems.AnanyaCurves</string>
         <key>CFBundleInfoDictionaryVersion</key>
         <string>6.0</string>
         <key>CFBundleName</key>
         <string>AnanyaCurves</string>
         <key>CFBundlePackageType</key>
         <string>APPL</string>
         <key>CFBundleShortVersionString</key>
         <string>0.1</string>
         <key>CFBundleSignature</key>
         <string>ac</string>
         <key>CFBundleVersion</key>
         <string>0.1</string>
         <key>Java</key>
         <dict>
              <key>JMVersion<key>
              <string>1.4+</string>
              <key>MainClass</key>
              <string>AnanyaCurves</string>
              <key>VMOptions</key>
              <string>-Xmx512m</string>
              <key>Properties</key>
              <dict>
                   <key>apple.laf.useScreenMenuBar</key>
                   <string>true</string>
                   <key>apple.awt.showGrowBox</key>
          <string>true</string>
              </dict>
         </dict>
    </dict>
    </plist>Ok, so now I can at least run the AnanyaCurves.jar file by double-clicking on it.
    However, I still cannot run the AnanyaCurves.app file. When I double-click on it, I get the following message in the Console:
    1/11/09 5:12:26 PM [0x0-0x67067].com.apple.JarLauncher[1128]  at ananyacurves.AnanyaCurves.main(AnanyaCurves.java:1961)
    1/11/09 5:13:11 PM [0x0-0x6a06a].com.AnanyaSystems.AnanyaCurves[1137] [JavaAppLauncher Error] CFBundleCopyResourceURL() failed loading MRJApp.properties file
    1/11/09 5:13:11 PM [0x0-0x6a06a].com.AnanyaSystems.AnanyaCurves[1137] [LaunchRunner Error] No main class specified
    1/11/09 5:13:11 PM [0x0-0x6a06a].com.AnanyaSystems.AnanyaCurves[1137] [JavaAppLauncher Error] CallStaticVoidMethod() threw an exception
    1/11/09 5:13:11 PM [0x0-0x6a06a].com.AnanyaSystems.AnanyaCurves[1137] Exception in thread "main" java.lang.NullPointerException
    1/11/09 5:13:11 PM [0x0-0x6a06a].com.AnanyaSystems.AnanyaCurves[1137]  at apple.launcher.LaunchRunner.run(LaunchRunner.java:112)
    1/11/09 5:13:11 PM [0x0-0x6a06a].com.AnanyaSystems.AnanyaCurves[1137]  at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:50)
    1/11/09 5:13:11 PM [0x0-0x6a06a].com.AnanyaSystems.AnanyaCurves[1137]  at apple.launcher.JavaApplicationLauncher.main(JavaApplicationLauncher.java:61)Why is it looking for the MRJApp.properties file? Isn't this outdated? Shouldn't it look for the Info.plist file? I do not have a MRJApp.properties file.
    Also, in the Run menu of my XCode project, Go, Run, and Debug are disabled, but perhaps this has to do with not being able to run the AnanyaCurves.app file.
    Thanks for your time! I really appreciate any help you can give me!

  • "Warning: compiled but with compilation errors" while executing procedure.

    Hi All, i am so new to plsql. this code has been compiled but it gave a warning. I guess i am missing a small issue like semicolon but since im new i could not see what the problem is.
    CREATE OR REPLACE procedure BAKIM.grantt_uguser as
    cursor synn is
        select 'CREATE PUBLIC SYNONYM '||object_name||' for '||owner||'.'||object_name TXT from dba_objects
        where owner= 'FCY' and object_type in ('INDEX','PROCEDURE','TABLE','FUNCTION','VIEW','TRIGGER','SEQUENCE','PACKAGE')
        and
        object_name not in (select table_name from dba_synonyms where owner = 'FCY');
    begin
      for li in synn
      loop
    execute immediate li.TXT;
      end loop;
    end;

    Immediately after compiling, when you get the warning:
    select * from user_errors;
    In this case the root cause is "ORA-00942: table or view does not exist" because you probably don't have select on DBA_OBJECTS or DBA_SYNONYMS granted directly to BAKIM (it is probably through a role which is not sufficient for PL/SQL procedures).

  • Finished writing amazing code that compiles but won't run properly

    I finished writing this code for someone and it compiles but it does not run properly. Anyone see any problems? Any help would be gladly appreciated.
    /* Program is for the Coconut Grove Palace Building. This program keeps track of the building occupants and the maintenance for each tenant using a simple menu system. */
    import java.util.Scanner;
    public class Grove {
    private static Scanner keyboard = new Scanner(System.in);
    /* Declaring values that will not change throughout the program. The plus one is so that people don't get confused */
    private static final int TOTAL_BUILDING_MAX = 16 + 1;
    private static final int TOTAL_FLOOR_MAX = 8 + 1;
    private static final int APARTMENT_MAX = 4 + 1;
    public static void main (String[] args) {
    // Declare main variable
         int cocoPalace[][] = new int[2][3];
         char menuChoice;
         int aptNumber = 0;
         int floorNumber = 0;
         int totalFloor = 0;
         int totalBuilding = 0;
    //Fill up the array with the original amount of 2 people per apartment
         for (int dex = 0; dex <3; dex++)
                   cocoPalace[0][dex] = 2;
                   cocoPalace[1][dex] = 2;     
         System.out.println("Welcome to the coconut grove palace");
    //Main part of the program that is essentially the menu screen.     
         do
              //method that calculates the maintenance that will be used several times
              double buildingMaintenance = calculateMaintenance(cocoPalace);
              //Menu System using a switch command with nested for loops and other code.
                   System.out.println("(A)partment, (B)uilding, (P)eople, E(x)it");
                   menuChoice = keyboard.nextLine().charAt(0);
                        switch (menuChoice)     
    //FIRST CASE 'A' ASK FOR THE FLOOR AND APARTMENT NUMBER AND DISPLAYS THE MAINTENANCE COST FOR IT
                   case 'a':
                   //Idiot proof 1
                   System.out.println("Please enter floor number :");
                   floorNumber = keyboard.nextInt();
                   while (floorNumber > 2)
                   System.out.println("Floor number must be between 1 and 2. Try again:");
                   floorNumber = keyboard.nextInt();
                   //Idiot proof 2               
                   System.out.println("Please enter apartmentNumber :");
                   aptNumber = keyboard.nextInt();
                   while (aptNumber > 3)
                   System.out.println("Apartment number must be between 1 and 3. Try again:");
                   aptNumber = keyboard.nextInt();
                   System.out.println("Floor number" + cocoPalace[floorNumber] + "Apartment number" + cocoPalace[floorNumber][aptNumber] + " : " + buildingMaintenance);
                   break;
    //SECOND CASE 'B' REPORTS THE OCCUPANCY AND MAINTENANCE FOR THE WHOLE BUILDING
                   case 'b':
                   for (int dex2 = 0; dex2 < 3; dex2++)
                   System.out.println("Floor number 1 Apartment number " + cocoPalace[0][dex2] + " : " + buildingMaintenance);                    
                   for (int dex3 = 0; dex3 < 2; dex3++)
                   System.out.println("Floor number 2 Apartment number " + cocoPalace[1][dex3] + " : " + buildingMaintenance);                    
                   break;
    /*THIRD CASE 'P' ALLOWS THE USER TO CHANGE THE AMOUNT OF PEOPLE IN AN APARTMENT AND RECALCULATES THE MAINTENACE. IT IS ALSO "IDIOT PROOFED" SO THAT VALUES DO NOT EXCEED THE REGULATIONS OF THE BUILDING IT SELF */
                   case 'p':
                   //Idiot proof 1
                   System.out.println("Please enter floor number : ");
                   floorNumber = keyboard.nextInt();
                   while (floorNumber > 3)
                   System.out.println("Floor number must be between 1 and 2. Try again: ");
                   floorNumber = keyboard.nextInt();
                   //Idiot proof 2               
                   System.out.println("Please enter apartment number : ");
                   aptNumber = keyboard.nextInt();
                   while (aptNumber > 4)
                   System.out.println("Apartment number must be between 1 and 3. Try again: ");
                   aptNumber = keyboard.nextInt();
                   //Idiot proof 3 with the amount of people being added at the same time.
                   System.out.println("How many people will there be : ");
                   int amountPeople = keyboard.nextInt();
                   cocoPalace[floorNumber][aptNumber] = amountPeople;
                   while (amountPeople > APARTMENT_MAX || totalBuilding > TOTAL_BUILDING_MAX || totalFloor > TOTAL_FLOOR_MAX )
              System.out.print("Too many people in building. Please try again : ");
                   amountPeople = keyboard.nextInt();
                        cocoPalace[floorNumber][aptNumber] = amountPeople;
                   break;
         while (menuChoice != 'x'|| menuChoice != 'a' || menuChoice != 'p' || menuChoice != 'b');
    //Method to calculate maintenance.
    private static double calculateMaintenance(int cocoPalace[][])
         int amountPeople = 0;
         for (int dex4 = 0; dex4 < 2; dex4++)
                   amountPeople += cocoPalace[0][dex4];
                   amountPeople += cocoPalace[1][dex4];
                   cocoPalace[0][dex4] = 2;
                   cocoPalace[1][dex4] = 2;     
              double buildingMaintenance = 5000/(amountPeople);
         return(buildingMaintenance);
    }

    ok the array problem is fixed i was having a simple "one off" mistake when accessing the array.
    As for the error that i keep getting. I honestly can't see where the problem with this is in code.
    The it cant be equalt to nothing because this is written so that it has to equal a letter before the program actually runs through everything. Thanks again for the help
    here is the error that i am getting when the program runs.
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.String.charAt(String.java:558)
    at Grove.main(Grove.java:46)
    Here is the code with the new corrections.
    /* Program is for the Coconut Grove Palace Building. This program keeps track of the building occupants and the maintenance for each tenant using a simple menu system. */
    import java.util.Scanner;
    public class Grove {
    private static Scanner keyboard = new Scanner(System.in);
    /* Declaring values that will not change throughout the program. The plus one is so that people don't get confused */
    private static final int TOTAL_BUILDING_MAX = 16 + 1;
    private static final int TOTAL_FLOOR_MAX = 8 + 1;
    private static final int APARTMENT_MAX = 4 + 1;
    public static void main (String[] args) {
    // Declare main variable
         int cocoPalace[][] = new int[2][3];
         char menuChoice;
         int totalFloor = 0;
         int totalBuilding = 0;
    //Fill up the array with the original amount of 2 people per apartment
         for (int dex = 0; dex <3; dex++)
                   cocoPalace[0][dex] = 2;
                   cocoPalace[1][dex] = 2;     
         System.out.println("Welcome to the coconut grove palace");
    //Main part of the program that is essentially the menu screen.     
         do
         //Variables intialized
         int aptNumber = 0;
         int floorNumber = 0;
              //method that calculates the maintenance that will be used several times
              double buildingMaintenance = calculateMaintenance(cocoPalace);
              //Menu System using a switch command with nested for loops and other code.
                   System.out.println("(A)partment, (B)uilding, (P)eople, E(x)it");
                   menuChoice = keyboard.nextLine().charAt(0);
                        switch (menuChoice)     
    //FIRST CASE 'A' ASK FOR THE FLOOR AND APARTMENT NUMBER AND DISPLAYS THE MAINTENANCE COST FOR IT
                   case 'a':
                   //Idiot proof 1
                   System.out.println("Please enter floor number     :");
                   floorNumber = keyboard.nextInt();
                   while (floorNumber > 2)
                   System.out.println("Floor number must be between 1 and 2. Try again:");
                   floorNumber = keyboard.nextInt();
                   //Idiot proof 2               
                   System.out.println("Please enter apartmentNumber  :");
                   aptNumber = keyboard.nextInt();
                   while (aptNumber > 3)
                   System.out.println("Apartment number must be between 1 and 3. Try again:");
                   aptNumber = keyboard.nextInt();
                   System.out.println("Floor number" + cocoPalace[floorNumber] + "Apartment number" + cocoPalace[floorNumber - 1][aptNumber - 1] + "  :  " + buildingMaintenance);
                   break;
    //SECOND CASE 'B' REPORTS THE OCCUPANCY AND MAINTENANCE FOR THE WHOLE BUILDING
                   case 'b':
                   for (int dex2 = 0; dex2 < 3; dex2++)
                   System.out.println("Floor number 1 Apartment number  " + cocoPalace[0][dex2] + "  :  " + buildingMaintenance);                    
                   for (int dex3 = 0; dex3 < 2; dex3++)
                   System.out.println("Floor number 2 Apartment number  " + cocoPalace[1][dex3] + "  :  " + buildingMaintenance);                    
                   break;
    /*THIRD CASE 'P' ALLOWS THE USER TO CHANGE THE AMOUNT OF PEOPLE IN AN APARTMENT AND RECALCULATES THE MAINTENACE. IT IS ALSO "IDIOT PROOFED" SO THAT VALUES DO NOT EXCEED THE REGULATIONS OF THE BUILDING IT SELF */
                   case 'p':
                   //Idiot proof 1
                   System.out.println("Please enter floor number     : ");
                   floorNumber = keyboard.nextInt();
                   while (floorNumber > 2)
                   System.out.println("Floor number must be between 1 and 2. Try again: ");
                   floorNumber = keyboard.nextInt();
                   //Idiot proof 2               
                   System.out.println("Please enter apartment number : ");
                   aptNumber = keyboard.nextInt();
                   while (aptNumber > 3)
                   System.out.println("Apartment number must be between 1 and 3. Try again: ");
                   aptNumber = keyboard.nextInt();
                   //Idiot proof 3 with the amount of people being added at the same time.
                   System.out.println("How many people will there be : ");
                   int amountPeople = keyboard.nextInt();
                   cocoPalace[floorNumber - 1][aptNumber - 1] = amountPeople;
                   while (amountPeople > APARTMENT_MAX || totalBuilding > TOTAL_BUILDING_MAX || totalFloor > TOTAL_FLOOR_MAX  )
                          System.out.print("Too many people in building. Please try again : ");
                               amountPeople = keyboard.nextInt();
                        cocoPalace[floorNumber - 1][aptNumber - 1] = amountPeople;
                   break;
         while (menuChoice != 'x'|| menuChoice != 'a' || menuChoice != 'p' || menuChoice != 'b');
    //Method to calculate maintenance.
    private static double calculateMaintenance(int cocoPalace[][])
         int amountPeople = 0;
         for (int dex4 = 0; dex4 < 2; dex4++)
                   amountPeople += cocoPalace[0][dex4];
                   amountPeople += cocoPalace[1][dex4];
                   cocoPalace[0][dex4] = 2;
                   cocoPalace[1][dex4] = 2;     
              double buildingMaintenance = 5000/(amountPeople);
         return(buildingMaintenance);
    }

  • Compiles, but doesn't run - also objects used like arrays?

    Hello. I am a way newbie at Java, but I like it a lot. I'm using it to write a little final project for an intro CS class I'm taking. The program is a little mileage calcuator. Okay, so here's what I don't get. I started to write out the program and everything was compiling, my output and input were working. Then I started to add some classes and objects. Now it still compiles, but the command line just gives me "hit any key". None of my output or input stuff. What happened?
    While I'm at it, in C++ I would've used a little array to store a bit of data for this app. Can I use multile objects of a class and iterate through them in a for each in the same way?
    Any help much appreciated.
    Here's the code:
    //Joanna Grossman
    //mileage calculator
    //final project SWE 150
    //creates vehicle class
    class vehicle {
         int id;
         String name;
         int mpg;
    //creates different vehicle objects - may need to be changed to array
    class vehicleTypes {
         public static void main(String args[]) {
              vehicle SUV = new vehicle();
              vehicle hybrid = new vehicle();
              vehicle FordTaurus = new vehicle();
              //assigns values for cars
              SUV.id = 1;
              SUV.name = "SUV";
              SUV.mpg = 10;
              hybrid.id = 2;
              hybrid.name = "Honda Civic";
              hybrid.mpg = 50;
              FordTaurus.id = 3;
              FordTaurus.name = "Ford Taurus";
              FordTaurus.mpg = 23;
    //creates location class
    class location {
         int id;
         String name;
         int miles2Loc1;
         int miles2Loc2;
         int miles2Loc3;
    //creates location objects
    class locationObjects {
         public static void main(String args[]) {
              location Burlington = new location();
              location NewYork = new location();
              location Syracuse = new location();
              //assigns values to locations
              Burlington.id = 1;
              NewYork.id=2;
              Syracuse.id = 3;
              Burlington.name = "Burlington";
              Burlington.miles2Loc1 = 0;
              Burlington.miles2Loc2 = 308;
              Burlington.miles2Loc3 = 270;
              NewYork.name = "New York";
              NewYork.miles2Loc1 = 308;
              NewYork.miles2Loc2 = 0;
              NewYork.miles2Loc3 = 246;
              Syracuse.name = "Syracuse";
              Syracuse.miles2Loc1 = 270;
              Syracuse.miles2Loc2 = 246;
              Syracuse.miles2Loc3 = 0;
    //mainline logic
    class mileageCalculator {
         public static void main(String args[])
              throws java.io.IOException {
              char play;
              play='y';
                   System.out.println("Would you like to calculate your mileage?");
                   System.out.println("Please press \"y\" for \'yes\' or \"n\" for \'no\'\nThen Press \"Enter\"");
                   play = (char) System.in.read();
                   System.out.println("Your answer is "+play);
                   System.out.println("What is your destination?");
                   System.out.println("Press press it's number:");
                   System.out.println("1\tBurlington\n2\tNew York\n3\tSyracuse");
    }

    You're probably "running" one of the classes that doesn't produce any output. The main() method is intended to be an application's entry point, not someplace you just cram all your code. You'll want to learn about methods and how objects communicate with each other. Have a look at the following:
    The Java� Tutorial - Trail: Learning the Java Language
    Good luck!
    ~

  • Program compiles but doesn't work

    The folowing program compiles, but it doesn't work, when I type GuessingGame.play(5); into the interactions pane, I get the message
    No 'play' method in 'GuessingGame'. All my brackets line up and I can't see where the problem is. I would definitely apreciate it if you could help!
    /** Allows a user to play a number-guessing game.
    The constructor takes the integer to be guessed. */
    public class GuessingGame {
    int theNumber; //The number to be guessed by the user.
    int guessNumber; //The users guess.
    public void play(int g){
    theNumber=g;
    guessNumber = Integer.parseInt(JOptionPane.showInputDialog("Guess an integer."));
    while(guessNumber!=theNumber){
    if(guessNumber > theNumber){
    JOptionPane.showMessageDialog(null, "Your guess was too high. Guess again.");
    else if(guessNumber < theNumber){
    JOptionPane.showMessageDialog(null, "Your guess was too low. Guess again.");
    JOptionPane.showMessageDialog(null, "You're right!");

    Sorry, it's just that no-one was answering, it took over 2 hours to get a response. I finally got some help now(with the topic as 'Fun to be had by all!'), so you can now just ignore all of them.

  • Code compiles but wont run

    Hi,
    My prgram was working fine until I added some database stuff to it, now it will compile but it wont run, heres my relevent code:
    import java.awt.*;
    import javax.swing.*;
    import java.util.*;
    import java.sql.*;
    public class DisplayController extends JFrame 
         public JTextField txtTime, txtInterest, txtAmount;
         public JLabel lblTotal;
         static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
         static final String DATABASE_URL = "jdbc:mysql://localhost/Money?user=root&password=root";
         private Connection conn;
         private Statement stat;
         public JComboBox accountList;
         Vector vector1 = new Vector();
         ButtonHandler theButtonHandler = new ButtonHandler(txtTime, txtAmount, txtInterest, lblTotal);
       // set up GUI
       public DisplayController()
          super( "Goon Money Manager " );
          JTabbedPane tabbedPane = new JTabbedPane();
              /* sets up the transactions window and adds
                   it to the tabbedPane,this is where all the
                   transactions for all the accouns are displayed.
         try
                   Class.forName(JDBC_DRIVER);
                   conn = DriverManager.getConnection(DATABASE_URL);
                   stat = conn.createStatement();
                   ResultSet rs = stat.executeQuery("SELECT heading1 FROM demo");
                   while(rs.next()) vector1.add(rs.getObject(1));
              catch(SQLException sqlException)
                   System.exit(1);
              catch (ClassNotFoundException classNotFound)
                   System.exit(1);
              }

    thats exactly what I put in... what else can I do so I can see whats going on? Here's the entire code in case you need it:
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.util.*;
    import java.sql.*;
    public class DisplayController extends JFrame 
         public JTextField txtTime, txtInterest, txtAmount;
         public JLabel lblTotal;
         static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
         static final String DATABASE_URL = "jdbc:mysql://localhost/Money?user=root&password=root";
         private Connection conn;
         private Statement stat;
         public JComboBox accountList;
         Vector vector1 = new Vector();
         ButtonHandler theButtonHandler = new ButtonHandler(txtTime, txtAmount, txtInterest, lblTotal);
       // set up GUI
       public DisplayController()
          super( "Goon Money Manager " );
          JTabbedPane tabbedPane = new JTabbedPane();
    /* sets up the transactions window and adds
         it to the tabbedPane,this is where all the
         transactions for all the accouns are displayed.
          try
                   Class.forName(JDBC_DRIVER);
                   conn = DriverManager.getConnection(DATABASE_URL);
                   stat = conn.createStatement();
                   ResultSet rs = stat.executeQuery("SELECT accountName FROM Money");
                   while(rs.next()) vector1.add(rs.getObject(1));
              catch(SQLException sqlException)
                   System.exit(1);
                   sqlException.printStackTrace();
              catch (ClassNotFoundException classNotFound)
                   System.exit(1);
                   classNotFound.printStackTrace();
          JTextArea mainWindow = new JTextArea(600,300);
              accountList = new JComboBox(vector1);
              JPanel displayTabPanel = new JPanel(new FlowLayout());
              displayTabPanel.setLayout(new FlowLayout() );
              displayTabPanel.add(accountList);
              displayTabPanel.add(new JScrollPane(mainWindow));
              tabbedPane.addTab("Transactions",null,displayTabPanel,"Transaction List");
              accountList.addListSelectionListener(
              new ListSelectionListener()
                   public void valueChanged(ListSelectionEvent event)
                        try
                             ResultSet resultSet = stat.executeQuery("SELECT * FROM demo");
                             StringBuffer results = new StringBuffer();
                             ResultSetMetaData metaData = resultSet.getMetaData();
                             int numberOfColumns = metaData.getColumnCount();
                             for(int i = 1; i<=numberOfColumns; i++)
                             results.append(metaData.getColumnName(i) + "\t");
                             results.append("\n");
                             while (resultSet.next())
                                  for(int i = 1; i<= numberOfColumns; i++)
                                  results.append(resultSet.getObject(i) + "\t");
                                  results.append("\n");
                        catch(SQLException sqlException)
                             JOptionPane.showMessageDialog(null,sqlException.getMessage(),
                             "Database Error1", JOptionPane.ERROR_MESSAGE);
                             System.exit(1);
         );//end anonymous inner class
    /* sets up a savings planner to
         calculate various saving senarios
          JComboBox weekMonthYear;
              JLabel amount = new JLabel("Amount         ");
              JLabel time = new JLabel("Time               ");
              JLabel interestRate = new JLabel("Interest Rate");
              JLabel total = new JLabel("Total");
              JButton calc = new JButton("Calculate");
              JPanel top, panAmount, panTime, panTotal, panCalculate;
              JPanel panInterest = new JPanel();
              JPanel container1 = new JPanel();
              String comboNames[] = {"Weekly","Monthly","Yearly"};
              container1.setLayout(new BoxLayout(container1, BoxLayout.PAGE_AXIS));
              weekMonthYear = new JComboBox(comboNames);
              top = new JPanel();
              top.setLayout(new FlowLayout());
              top.add(weekMonthYear);
              panAmount = new JPanel();
              panAmount.setLayout(new FlowLayout());
              panAmount.add(amount);
              txtAmount = new JTextField(7);
              panAmount.add(txtAmount);
              panTime = new JPanel();
              panTime.setLayout(new FlowLayout());
              panTime.add(time);
              txtTime = new JTextField(7);
              panTime.add(txtTime);
              panInterest.setLayout(new FlowLayout());
              panInterest.add(interestRate);
              txtInterest = new JTextField(7);
              panInterest.add(txtInterest);
              panTotal = new JPanel();
              panTotal.setLayout(new FlowLayout());
              panTotal.add(total);
              lblTotal = new JLabel();
              panTotal.add(lblTotal);
              panCalculate = new JPanel();
              panCalculate.setLayout(new FlowLayout());
              panCalculate.add(calc);
              container1.add(top);
              container1.add(panAmount);
              container1.add(panTime);
              container1.add(panInterest);
              container1.add(panTotal);
              container1.add(panCalculate);
              tabbedPane.addTab("Savings Planner",null,container1,"Test Savings Senerios");
              JPanel budgetTop, budgetBottom, budgetMain;
              JList budgetList;
              JButton addBudget;
              JTextField txtAddBudget;
              budgetMain = new JPanel();
              budgetList = new JList();
              budgetList.setVisibleRowCount(10);
              budgetTop = new JPanel();
              budgetTop.setLayout(new FlowLayout());
              budgetTop.add(budgetList);
              addBudget = new JButton("Add Budgeted Item");
              txtAddBudget = new JTextField(20);
              budgetBottom = new JPanel();
              budgetBottom.setLayout(new FlowLayout());
              budgetBottom.add(addBudget);
              budgetBottom.add(txtAddBudget);
              budgetMain.setLayout(new GridLayout(2,1));
              budgetMain.add(budgetTop);
              budgetMain.add(budgetBottom);
              tabbedPane.addTab("Budget",null,budgetMain,"View and Edit your Budget");
          getContentPane().add( tabbedPane );
          setSize( 700, 400 );
          setVisible( true );
       } // end constructor
       public static void main( String args[] )
          DisplayController app = new DisplayController();
          app.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    } // end class DisplayController

  • It compiles but can't run it!

    Hi
    I am really new to java. I got this code from net and tried to compile it. Idoes compile but when i run it , i get the messege,
    "java.lang.NoSuchMethodError: main
    Exception in thread "main" .
    Here is me code.Can someone pleaese tell me y i can't run it and how to fix it. Thanks for your time.
    import java.awt.*;
    import java.awt.event.*;
    public class calculator extends java.applet.Applet implements ActionListener {
         TextField txtTotal = new TextField("");
    Button button[] = new Button[10];
         Button divide = new Button("/");
         Button mult = new Button("*");
         Button plus = new Button ("+");
         Button minus = new Button("-");
         Button isequalto = new Button("=");
         Button clear = new Button("CA");
         double num ,numtemp ;
         int counter;
         String strnum = "",strnumtemp = "" ;
         String op = "";
         public void operation() {
         counter ++;
              if (counter == 1) {
              numtemp = num;      
              strnum = "";
              num = 0;
              }else{
              if (op == "+") numtemp += num;
              else if (op == "-") numtemp -= num;
              else if (op == "*") numtemp = numtemp * num;
              else if (op == "/") numtemp = numtemp / num;
              strnumtemp = Double.toString(numtemp);
              txtTotal.setText(strnumtemp);          
              strnum = "";
              num = 0;     
         public void init() {
         setLayout(null);
         plus.setBackground(Color.blue);
         plus.setForeground(Color.white);
    minus.setBackground(Color.blue);
         minus.setForeground(Color.white);
    divide.setBackground(Color.blue);
         divide.setForeground(Color.white);
         isequalto.setBackground(Color.blue);
         isequalto.setForeground(Color.white);
         mult.setBackground(Color.blue);
         mult.setForeground(Color.white);
         clear.setBackground(Color.blue);
         clear.setForeground(Color.red);
         for(int i = 0;i <= 9; i ++) {
              button[i] = new Button(String.valueOf(i));
              button.setBackground(Color.orange);
              button[i].setForeground(Color.blue);
         button[1].setBounds(0,53,67,53);
         button[2].setBounds(67,53,67,53);
         button[3].setBounds(134,53,67,53);
         button[4].setBounds(0,106,67,53);
         button[5].setBounds(67,106,67,53);
         button[6].setBounds(134,106,67,53);
         button[7].setBounds(0,159,67,53);
         button[8].setBounds(67,159,67,53);
         button[9].setBounds(134,159,67,53);
         for (int i = 1;i <= 9; i ++) {
              add(button[i]);
         txtTotal.setBounds(0,0,200,53);
         add(txtTotal);
         plus.setBounds(0,212,67,53);
         add(plus);
         button[0].setBounds(67,212,67,53);
         add(button[0]);
         minus.setBounds(134,212,67,53);
         add(minus);
         divide.setBounds(134,264,67,53);
         add(divide);
         isequalto.setBounds(67,264,67,53);
         add(isequalto);
         mult.setBounds(0,264,67,53);
         add(mult);
         add(clear);
         public void start() {
         for(int i = 0;i <= 9; i ++) {
              button[i].addActionListener(this);
         plus.addActionListener(this);
         minus.addActionListener(this);
         divide.addActionListener(this);
         mult.addActionListener(this);
         isequalto.addActionListener(this);
         clear.addActionListener(this);
         public void stop() {
         for(int i = 0;i <= 9; i ++) {
              button[i].addActionListener(null);
         plus.addActionListener(null);
         minus.addActionListener(null);
         divide.addActionListener(null);
         mult.addActionListener(null);
         isequalto.addActionListener(null);
         clear.addActionListener(null);
         public void actionPerformed(ActionEvent e) {
              for(int i = 0;i <= 9; i++) {
                   if (e.getSource() == button[i]) {
                   play(getCodeBase(),i + ".au");
                   strnum += Integer.toString(i);
                   txtTotal.setText(strnum);
                   num = Double.valueOf(strnum).doubleValue();
    if (e.getSource() == plus) {
              operation();
              op = "+";
              if (e.getSource() == minus) {
              operation();
              op = "-";
              if (e.getSource() == divide) {
              operation();     
              op = "/";
              if (e.getSource() == mult) {
              operation();     
              op = "*";
              if (e.getSource() == isequalto) {
              if (op == "+") numtemp += num;
              else if (op == "-") numtemp -= num;
              else if (op == "*") numtemp = numtemp * num;
              else if (op == "/") numtemp = numtemp / num;
              strnumtemp = Double.toString(numtemp);
              txtTotal.setText(strnumtemp);
              strnumtemp = "";
              numtemp = 0;
              strnum = "";
              num = 0;
              counter = 0;
              if (e.getSource() == clear) {
              txtTotal.setText("0");
              strnumtemp = "";
              numtemp = 0;
              strnum = "";
              num = 0;
              counter = 0;

    Thanks for your reply.
    Ok i used the link that you sent me and saved the following in the same directory where i have "calcultor.class".
    <HTML>
    <HEAD>
    <TITLE> A Simple Program </TITLE>
    </HEAD>
    <BODY>
    <APPLET CODE="calculator.class" WIDTH=150 HEIGHT=25>
    </APPLET>
    </BODY>
    </HTML>
    I saved it with the name "calculator.html".
    Now when in my browser i type calculator.html, nothing happens.
    I am sure i am missing something but i don't know what.Can someone please help me!
    thanks

  • My program compiles but when i run it, main class cannot be found

    as you can see, my program TestMaker compiles but when i try running it i get all these errors, i have no idea what's wrong with this
    C:\Users\Student\workspace\TestMaker\src>javac TestMaker.java
    C:\Users\Student\workspace\TestMaker\src>java TestMaker 514pcp.txt
    Exception in thread "main" java.lang.NoClassDefFoundError: TestMaker
    Caused by: java.lang.ClassNotFoundException: TestMaker
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    Could not find the main class: TestMaker. Program will exit.
    C:\Users\Student\workspace\TestMaker\src>

    jgv9a wrote:
    So i try
    java -cp . TestMaker 514pcp.txt
    and get this
    C:\Users\Student\workspace\TestMaker\src>java -cp . TestMaker 514.txt
    Exception in thread "main" java.lang.NoClassDefFoundError: StdInThat means that you are using a class (StdIn), that is not on your classpath, but in some other place.
    The "-cp ." tells Java to ignore the CLASSPATH variable and just look in the current directory instead. You probably had the location of StdIn on your CLASSPATH variable.
    What you need to do in this case is to add the current directory "." to your CLASSPATH variable.
    Go [learn about the Classpath here|http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html].

  • Classes compile but program doesn't run????

    Hello all.
    I am working on certain program and all the classes compile but when I try to run the app. I don't get anything displayed. I am using BLUEJ as editor and I currently have JDK-1.3.1_06 installed. I am running WIN-2000-PRO.
    I also tried running the program from command line and these are the errors I was getting:
    Exception in thread "main" java.lang.NoClassDefFoundError: snapshop (wrong name: SnapShop)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    It says wrong name, but I am sure that's correct.
    THANKS EVERYBODY FOR THE HELP.

    nope, there is NOTHING WRONG WITH THE INSTALLATION
    when you get "wrong name snapshot (SnapShot)" it means "I (java.exe), have been called with the arguments 'java snapshot', yet I cannot find the 'snapshot' class. However there is a class named 'SnapShot', which I think you may be referring to"
    what command line program are you using? methinks something may be auto-lowercasing what you type before passing it on to the system
    Also on unix style systems is it valid and runnable to have 2 classes where the only difference in the name is casing?

  • How do I get albums out of "compilations'?  On one of my machined I can go to individual songs, "get info" and uncheck "part of a compilation", but that does not work on my office machine.  I would also like to be able to do this in  a group for an album,

    I don't know how so much of my music got lost by being labled "compilations"?  I would like to go back and catagorize it as it should be but the screens are gray and will not let me alter them as to the catagory I wish them to be in (or even the genere they are already labled?  On my home machine I can (by individual song) "get info and uncheck "part of a compilation" and when this is finished the album goes to the genere as it is listed?  Frustrating bit of hous keeping.  Help and Thanks  Chuck

    The Get Info. fields show up gray if the files is locked and iTunes knows it can't edit the file. Make sure the files are not marked as read only and, if necessary grant both your account and system full access to all files and subfolders of your media folder.
    You can set Part of a Compilation for multiple tracks from the Options tab of Get Info.
    See Grouping tracks into albums for tips on getting iTunes organized.
    tt2

Maybe you are looking for

  • KM News creation for different layouts using xml form builder

    Dear All, We have a scenario where we need to create a xml template to generate KM News. The same KM News template should have three different show forms (with different design layouts). At Edit form there will be 3 option buttons based selection of

  • Avoid repeating namespace declaration in xml output

    Hi all, I'm trying an IDoc -> XML File (specifically UBL-format) scenario, and it is working fine. But the resulting XML contains repeating namespace declarations for each element, instead of a "common" declaration at the root element. How can I avoi

  • Indesign CS4 crashes during export to create pdf

    Hi, I created a directory of 300 pages with text import from excel and pictures recording in indesign format. Now, we want to export in pdf and indesign crashes in page n°7. We tried in different qualities, and the problem still appears. The problems

  • IOS 5 Problem with Music

    Something wrong with "music" stuff after upgrading to iOS5. Itunes says about successful synchronization of playlists, but when it comes to listening the music it makes me mad. On the screen there is a "play" sign but no music, even when I'm trying t

  • Sudo update_dyld_shared_cache -force fails

    When I issue the following command in terminal, I get the error below: sudo update_dyld_shared_cache -force update_dyld_shared_cache failed: /var/db/dyld/shared_region_roots/ does not exist, errno=2 When I tried to do an ls for the specified location