2012-07-03 3 views
-1

Я создал проект в доктора Java, который после компиляции может быть автоматически преобразован в файл Jar, чтобы затем преобразовать в .exe но я получаю эту ошибку:Что означает недопустимый литерал класса при попытке запустить программу?

Illegal class literal 

, когда я пытаюсь проверить запустить проект любая идея, почему это будет происходить?

это главный класс:

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

public class CoolingTowerFrame extends JFrame 
{ 
    public JLabel testLabel = new JLabel("All Temperatures in (deg)F"); 
    public JLabel testCalculationsLabel = new JLabel(""); 
    public JPanel testPanel = new JPanel(); 
    public JPanel textFieldPanel = new JPanel(); 
    public JPanel flowRatePanel = new JPanel(); 
    public JPanel wetBulbTempPanel = new JPanel(); 
    public JPanel waterInTempPanel = new JPanel(); 
    public JPanel waterOutTempPanel = new JPanel(); 
    public JPanel buttonPanel = new JPanel(); 
    public JTextField flowRateField = new JTextField(10); 
    public JTextField wetBulbTempField = new JTextField(10); 
    public JTextField waterInTempField = new JTextField(10); 
    public JTextField waterOutTempField = new JTextField(10); 
    public JLabel flowRateLabel = new JLabel(); 
    public JLabel wetBulbTempLabel = new JLabel(); 
    public JLabel waterInTempLabel = new JLabel(); 
    public JLabel waterOutTempLabel = new JLabel(); 
    public JButton submitButton = new JButton("Check Calculations"); 
    public JButton clearButton = new JButton("Clear"); 
    public JButton unknownWetBulbButton = new JButton("Unknown"); 
    public JButton findButton = new JButton("Find Unit"); 
    public int roundCoolingTons; 
    public int approach; 
    public int range; 
    public int wetBulbTemp; 
    public int flowRate; 

    public CoolingTowerFrame(String title, int frameWidth, int frameHeight) 
    { 
    super(title); 
    Toolkit toolkit = Toolkit.getDefaultToolkit(); 
    Dimension dimensions = toolkit.getScreenSize(); 
    int x = (dimensions.width - frameWidth)/2; 
    int y = (dimensions.height - frameHeight)/2; 
    setBounds(x, y, frameWidth, frameHeight); 

    submitButton.addActionListener(new ButtonListener()); 
    clearButton.addActionListener(new ButtonListener()); 
    unknownWetBulbButton.addActionListener(new ButtonListener()); 
    findButton.addActionListener(new ButtonListener()); 

    flowRateLabel.setFont(new Font("Arial", Font.BOLD, 12)); 
    flowRateLabel.setText("Flow Rate (GPM) :"); 
    flowRatePanel.add(flowRateLabel); 
    flowRatePanel.add(flowRateField); 
    textFieldPanel.add(flowRatePanel); 

    wetBulbTempLabel.setFont(new Font("Arial", Font.BOLD, 12)); 
    wetBulbTempLabel.setText("Wet Bulb:"); 
    wetBulbTempPanel.add(wetBulbTempLabel); 
    wetBulbTempPanel.add(wetBulbTempField); 
    wetBulbTempPanel.add(unknownWetBulbButton); 
    textFieldPanel.add(wetBulbTempPanel); 

    waterInTempLabel.setFont(new Font("Arial", Font.BOLD, 12)); 
    waterInTempLabel.setText("Water In:"); 
    waterInTempPanel.add(waterInTempLabel); 
    waterInTempPanel.add(waterInTempField); 
    textFieldPanel.add(waterInTempPanel); 

    waterOutTempLabel.setFont(new Font("Arial", Font.BOLD, 12)); 
    waterOutTempLabel.setText("Water Out:"); 
    waterOutTempPanel.add(waterOutTempLabel); 
    waterOutTempPanel.add(waterOutTempField); 
    textFieldPanel.add(waterOutTempPanel); 

    add(textFieldPanel, BorderLayout.CENTER); 

    buttonPanel.add(submitButton); 
    buttonPanel.add(clearButton); 
    buttonPanel.add(findButton); 

    add(buttonPanel, BorderLayout.SOUTH); 

    testPanel.add(testLabel); 
    testPanel.add(testCalculationsLabel); 
    add(testPanel, BorderLayout.NORTH); 
    } 

    public CoolingTowerFrame(String stringWetBulb) 
    { 
    super("Cooling Tower Selection Program"); 
    Toolkit toolkit = Toolkit.getDefaultToolkit(); 
    Dimension dimensions = toolkit.getScreenSize(); 
    int x = (dimensions.width - 315)/2; 
    int y = (dimensions.height - 250)/2; 
    setBounds(x, y, 315, 250); 
    setVisible(true); 
    setResizable(false); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    wetBulbTempField.setText(stringWetBulb); 
    wetBulbTempField.setEditable(false); 

    submitButton.addActionListener(new ButtonListener()); 
    clearButton.addActionListener(new ButtonListener()); 
    unknownWetBulbButton.addActionListener(new ButtonListener()); 
    findButton.addActionListener(new ButtonListener()); 

    flowRateLabel.setFont(new Font("Arial", Font.BOLD, 12)); 
    flowRateLabel.setText("Flow Rate (GPM):"); 
    flowRatePanel.add(flowRateLabel); 
    flowRatePanel.add(flowRateField); 
    textFieldPanel.add(flowRatePanel); 

    wetBulbTempLabel.setFont(new Font("Arial", Font.BOLD, 12)); 
    wetBulbTempLabel.setText("Wet Bulb:"); 
    wetBulbTempPanel.add(wetBulbTempLabel); 
    wetBulbTempPanel.add(wetBulbTempField); 
    wetBulbTempPanel.add(unknownWetBulbButton); 
    textFieldPanel.add(wetBulbTempPanel); 

    waterInTempLabel.setFont(new Font("Arial", Font.BOLD, 12)); 
    waterInTempLabel.setText("Water In:"); 
    waterInTempPanel.add(waterInTempLabel); 
    waterInTempPanel.add(waterInTempField); 
    textFieldPanel.add(waterInTempPanel); 

    waterOutTempLabel.setFont(new Font("Arial", Font.BOLD, 12)); 
    waterOutTempLabel.setText("Water Out:"); 
    waterOutTempPanel.add(waterOutTempLabel); 
    waterOutTempPanel.add(waterOutTempField); 
    textFieldPanel.add(waterOutTempPanel); 

    add(textFieldPanel, BorderLayout.CENTER); 

    buttonPanel.add(submitButton); 
    buttonPanel.add(clearButton); 
    buttonPanel.add(findButton); 

    add(buttonPanel, BorderLayout.SOUTH); 

    testPanel.add(testLabel); 
    testPanel.add(testCalculationsLabel); 
    add(testPanel, BorderLayout.NORTH); 
    } 


    private class ButtonListener implements ActionListener 
    { 
    public void actionPerformed(ActionEvent e) 
    { 
     if (e.getSource() == submitButton) 
     { 
     try 
     { 
      flowRate = Integer.parseInt(flowRateField.getText()); 
      wetBulbTemp = Integer.parseInt(wetBulbTempField.getText()); 
      int waterInTemp = Integer.parseInt(waterInTempField.getText()); 
      int waterOutTemp = Integer.parseInt(waterOutTempField.getText()); 

      testLabel.setText(""); 

      double coolingTons = calculateCoolingTons(flowRate, waterInTemp, waterOutTemp); 
      Double roundedTemp = new Double(coolingTons); 
      roundedTemp = Math.rint(roundedTemp); 
      roundCoolingTons = roundedTemp.intValue(); 
      approach = calculateApproach(waterOutTemp, wetBulbTemp); 
      range = calculateRange(waterInTemp, waterOutTemp); 

      testCalculationsLabel.setText("Cooling Tons: " + roundCoolingTons + " Approach: " + approach + " Range: " + range); 
     } 
     catch(NumberFormatException ex) 
     { 
      testLabel.setText("Improper Imput"); 
      testCalculationsLabel.setText("Unable to perform calculations"); 
     } 
     } 
     else if (e.getSource() == findButton) 
     { 
     if ((roundCoolingTons == 0) && (approach == 0) && (range == 0)) 
     { 
      testLabel.setText("Please Fill in Text Fields to Find Unit"); 
     } 
     else 
     { 
      JFrame selectUnit = new WetBulbChart(flowRate, wetBulbTemp, roundCoolingTons, approach, range); 
     } 
     } 
     else if (e.getSource() == clearButton) 
     { 
     testLabel.setText("All Temperatures in (deg)F"); 
     flowRateField.setText(""); 
     wetBulbTempField.setText(""); 
     wetBulbTempField.setEditable(true); 
     waterInTempField.setText(""); 
     waterOutTempField.setText(""); 
     testCalculationsLabel.setText(""); 
     } 
     else 
     { 
     JFrame wbf1 = new WetBulbByLocationFrame1(); 
     } 
    } 
    } 

    public static double calculateCoolingTons(int flowrate, int waterin, int waterout) 
    { 
    int differential = (waterin - waterout); 
    double tons = ((differential*flowrate)/30.00); 
    tons = Math.rint(tons); 
    return tons; 
    } 

    public static int calculateApproach(int waterout, int wetbulb) 
    { 
    int approach = (waterout - wetbulb); 
    return approach; 
    } 

    public static int calculateRange(int waterin, int waterout) 
    { 
    int range = (waterin - waterout); 
    return range; 
    } 

    public static void main(String []args) 
    { 
    JFrame frame = new CoolingTowerFrame("Cooling Tower Selection Program", 315, 250); 
    frame.setVisible(true); 
    frame.setResizable(false); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 
} 

это скриншот моей ошибки после того, как я нажимаю запустить: enter image description here

+0

Можете ли вы опубликовать некоторый код, чтобы согласиться с этой ошибкой? –

+0

У вас есть более подробная информация об исключении? Или фрагмент кода, который вы пытаетесь запустить? После редактирования примечание: обычно такие исключения происходят из-за общих классов http://thekevindolan.com/2010/03/reflecting-generic-types/ – Fawix

+0

Я могу опубликовать основной класс, но я не могу опубликовать всю программу – user1469139

ответ

0

Проблема в том, что-то с drjava, что я не до конца понимаю. Держу пари, если вы наберете «запустить CoolingTowerFrame» в консоли, он будет работать нормально.

0

Я тоже столкнулся с этой ошибкой. Меня сводило с ума. Я создал проект в DrJava с папкой под названием моей игры с двумя папками внутри: Src и класса. Я установил файл Game.class как основной класс по ошибке. Как только я исправил свойства проекта - изменил основной класс на Game.java, ошибка исчезла.