problem with tomcat/web start

Discussion in 'Java' started by DESANTIS77, Jun 29, 2003.

  1. DESANTIS77

    DESANTIS77 Guest

    Sorry to bother you with this, but I'm having a problem with web start. I'm
    trying to get the Calculator program from chapter 9 of Core Java Volume 1 to
    work as a web start application, and I keep getting the error message: No main
    class specified for application

    I have tomcat up and runnning in the background, and I'm using Netscape as my
    browser.

    Here is the code Calculator.java

    /**
    @version 1.31 2002-07-09
    @author Cay Horstmann
    */

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    public class Calculator
    {
    public static void main(String[] args)
    {
    CalculatorFrame frame = new CalculatorFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.show();
    }
    }

    /**
    A frame with a calculator panel.
    */
    class CalculatorFrame extends JFrame
    {
    public CalculatorFrame()
    {
    setTitle("Calculator");

    Container contentPane = getContentPane();
    CalculatorPanel panel = new CalculatorPanel();
    contentPane.add(panel);
    pack();
    }
    }


    /**
    A panel with calculator buttons and a result display.
    */
    class CalculatorPanel extends JPanel
    {
    public CalculatorPanel()
    {
    setLayout(new BorderLayout());

    result = 0;
    lastCommand = "=";
    start = true;

    // add the display

    display = new JLabel("0");
    add(display, BorderLayout.NORTH);

    ActionListener insert = new InsertAction();
    ActionListener command = new CommandAction();

    // add the buttons in a 4 x 4 grid

    panel = new JPanel();
    panel.setLayout(new GridLayout(4, 4));

    addButton("7", insert);
    addButton("8", insert);
    addButton("9", insert);
    addButton("/", command);

    addButton("4", insert);
    addButton("5", insert);
    addButton("6", insert);
    addButton("*", command);

    addButton("1", insert);
    addButton("2", insert);
    addButton("3", insert);
    addButton("-", command);

    addButton("0", insert);
    addButton(".", insert);
    addButton("=", command);
    addButton("+", command);

    add(panel, BorderLayout.CENTER);
    }

    /**
    Adds a button to the center panel.
    @param label the button label
    @param listener the button listener
    */
    private void addButton(String label, ActionListener listener)
    {
    JButton button = new JButton(label);
    button.addActionListener(listener);
    panel.add(button);
    }

    /**
    This action inserts the button action string to the
    end of the display text.
    */
    private class InsertAction implements ActionListener
    {
    public void actionPerformed(ActionEvent event)
    {
    String input = event.getActionCommand();
    if (start)
    {
    display.setText("");
    start = false;
    }
    display.setText(display.getText() + input);
    }
    }

    /**
    This action executes the command that the button
    action string denotes.
    */
    private class CommandAction implements ActionListener
    {
    public void actionPerformed(ActionEvent evt)
    {
    String command = evt.getActionCommand();

    if (start)
    {
    if (command.equals("-"))
    {
    display.setText(command);
    start = false;
    }
    else
    lastCommand = command;
    }
    else
    {
    calculate(Double.parseDouble(display.getText()));
    lastCommand = command;
    start = true;
    }
    }
    }

    /**
    Carries out the pending calculation.
    @param x the value to be accumulated with the prior result.
    */
    public void calculate(double x)
    {
    if (lastCommand.equals("+")) result += x;
    else if (lastCommand.equals("-")) result -= x;
    else if (lastCommand.equals("*")) result *= x;
    else if (lastCommand.equals("/")) result /= x;
    else if (lastCommand.equals("=")) result = x;
    display.setText("" + result);
    }

    private JLabel display;
    private JPanel panel;
    private double result;
    private String lastCommand;
    private boolean start;
    }


    I created the file Calculator.mf with the contents of Main-class: Calculator

    I produced the jar file as follows:

    jar cvfm Calculator.jar Calculator.mf *.class

    I also produced the jnlp file just like it all said on pages 532 and 533.

    I places everything in the tomcat examples directory

    I think pointed Netscape to http://localhost:8080/examples/Calculator.jnlp

    but not luck. Any suggestions you would give me would be greatly appreciated.

    Thanks
    Dominick
     
    DESANTIS77, Jun 29, 2003
    #1
    1. Advertising

  2. DESANTIS77

    VisionSet Guest

    "DESANTIS77" <> wrote in message
    news:...
    >
    > Sorry to bother you with this, but I'm having a problem with web start.

    I'm
    > trying to get the Calculator program from chapter 9 of Core Java Volume 1

    to
    > work as a web start application, and I keep getting the error message: No

    main
    > class specified for application
    >
    > I have tomcat up and runnning in the background, and I'm using Netscape as

    my
    > browser.
    >


    Calculator.mf must have a line that declares the starting class, the one
    with the main(String[] args) method that kicks off your app.

    ie:

    Manifest-Version: 1.0
    Main-Class: full.path.to.ClassWithMain


    --
    Mike W
     
    VisionSet, Jun 29, 2003
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Joe
    Replies:
    0
    Views:
    1,729
  2. Aleksandar Matijaca
    Replies:
    2
    Views:
    8,475
    Aleksandar Matijaca
    Sep 19, 2004
  3. Anup
    Replies:
    1
    Views:
    2,828
    Mark Rae
    May 9, 2006
  4. Replies:
    5
    Views:
    543
  5. albert kao
    Replies:
    3
    Views:
    2,094
    Arne Vajhøj
    Feb 2, 2011
Loading...

Share This Page