Note that there are some explanatory texts on larger screens.

plurals
  1. POIt runs OK in Eclipse but not able to run as .jar file
    primarykey
    data
    text
    <p>I am writing a math program. Everything runs fine in Eclipse, but when I export them as .jar file. It did not run. When I double clicked on the .jar file, nothing happened. Here is a screenshot of my directory. Please help.</p> <p>Here are steps to export .jar file:</p> <p>File->Export->JAR file(under java), click Next. In the JAR File Specification, select "TestingMath", and then select: Export all output folders for checked projects. Export Java source files and resources. Export refactorings for checked projects.<br> Browse to Desktop for destination.<br> Then click finish.</p> <p><img src="https://i.stack.imgur.com/Es58O.jpg" alt="screenshot"></p> <pre><code>package math; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.net.URL; import java.util.Random; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.UnsupportedAudioFileException; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.border.Border; import javax.swing.border.CompoundBorder; public class Testing extends JFrame implements ActionListener { /** * */ private static final long serialVersionUID = 1L; JLabel lblQuestion; JLabel lblImage; JButton bOK; JButton bExit; JPanel radioPanel; JPanel panBottom; JRadioButton[] radioButton; String [] store ; ButtonGroup bg; JButton bNext; JPanel mainPanel; JPanel pRight; JLabel lblCorrect; JLabel lblWrong; int vCorrect = 0; int vWrong = 0; JScrollPane scroll; public Testing() { //mc = mathCombine; //mc.setVisible(false); mainPanel = new JPanel(new BorderLayout()); buildingGUI(); //listAllFiles(); innitializeAllComponents(); URL url = getClass().getClassLoader().getResource("files/" + 1 + ".txt"); String strQuestion = readTextFile(url.toString(), 1); store = strQuestion.toString().split("!!!"); lblQuestion.setText("&lt;html&gt;" + store[0] + "&lt;/html&gt;"); //I need to get the image and display at the center according //to the fileNumber getTheImageAndDisplay(1); assignRandomNumberToRadioButton(store[1]); mainPanel.add(lblQuestion, BorderLayout.NORTH); mainPanel.add(radioPanel, BorderLayout.WEST); mainPanel.add(panBottom, BorderLayout.SOUTH); mainPanel.add(scroll, BorderLayout.CENTER); mainPanel.setPreferredSize(new Dimension(640, 480)); this.getContentPane().add(mainPanel); } private void getTheImageAndDisplay(int fileNumber) { // TODO Auto-generated method stub System.out.println("fileNumber for ismage: " + fileNumber); lblImage.setIcon(new ImageIcon(Testing.class.getResource("/images/" + fileNumber + ".png"))); //scroll = new JScrollPane(lblImage); } private void assignRandomNumberToRadioButton(String sAnswer) { // TODO Auto-generated method stub int number = Integer.parseInt(sAnswer.toString().trim()); //System.out.println("number: " + number); Random random = new Random(); int rand = random.nextInt(4); //This is the number of radioButton. //System.out.println("rand is: " + rand); System.out.println("Answer issss: " + sAnswer); radioButton[rand].setText(sAnswer); if(!radioButton[0].getText().equals("")) { radioButton[1].setText("" +( number + 2)); radioButton[2].setText("" + (number - 2)); radioButton[3].setText("" + (number + 1)); } else if(!radioButton[1].getText().equals("")) { radioButton[0].setText("" +( number + 2)); radioButton[2].setText("" + (number - 2)); radioButton[3].setText("" + (number + 1)); } else if(!radioButton[2].getText().equals("")) { radioButton[1].setText("" +( number + 2)); radioButton[0].setText("" + (number - 2)); radioButton[3].setText("" + (number + 1)); } else if(!radioButton[3].getText().equals("")) { radioButton[1].setText("" +( number + 2)); radioButton[2].setText("" + (number - 2)); radioButton[0].setText("" + (number + 1)); } } /** * Construct GUI. */ private void buildingGUI() { lblImage = new JLabel(); lblImage.setHorizontalAlignment(JLabel.CENTER); scroll = new JScrollPane(lblImage); bNext = new JButton("Next"); lblQuestion = new JLabel(); bOK = new JButton("OK"); bExit = new JButton("Exit"); lblQuestion.setFont(new Font("Tahoma", Font.PLAIN, 12)); radioPanel = new JPanel(); panBottom = new JPanel(); panBottom.setLayout(new GridLayout(1, 2)); panBottom.add(bOK); panBottom.add(bExit); bg = new ButtonGroup(); radioPanel.setLayout(new GridLayout(4, 1)); radioButton = new JRadioButton[4]; radioButton[0] = new JRadioButton(); radioButton[1] = new JRadioButton(); radioButton[2] = new JRadioButton(); radioButton[3] = new JRadioButton(); radioPanel.setLayout(new GridLayout(10, 1)); radioPanel.add(radioButton[0]); radioPanel.add(radioButton[1]); radioPanel.add(radioButton[2]); radioPanel.add(radioButton[3]); radioPanel.add(new JLabel()); radioPanel.add(new JLabel()); radioPanel.add(new JLabel()); radioPanel.add(bNext); radioPanel.add(new JLabel()); radioPanel.add(new JLabel()); bg.add(radioButton[0]); bg.add(radioButton[1]); bg.add(radioButton[2]); bg.add(radioButton[3]); pRight = new JPanel(); pRight.setLayout(new GridLayout(5, 2)); lblCorrect = new JLabel(); pRight.add(lblCorrect); lblWrong = new JLabel(); pRight.add(lblWrong); pRight.add(new JLabel(" ")); pRight.add(new JLabel(" ")); mainPanel.add(pRight, BorderLayout.EAST); } private int generateRandomNumber() { // TODO Auto-generated method stub Random random = new Random(); int rand = random.nextInt(20); //This is the number of Files in the system. return rand; } private void innitializeAllComponents() { // TODO Auto-generated method stub CompoundBorder border; Border raisedbevel = BorderFactory.createRaisedBevelBorder(); Border loweredbevel = BorderFactory.createLoweredBevelBorder(); border = BorderFactory.createCompoundBorder( raisedbevel, loweredbevel); lblQuestion.setFont(new Font("Tahoma", Font.PLAIN, 18)); lblQuestion.setBorder(BorderFactory.createLineBorder(Color.GREEN)); lblQuestion.setBorder(border); radioPanel.setBorder(border); pRight.setBorder(border); panBottom.setBorder(border); radioButton[0].setFont(new Font("Tahoma", Font.BOLD, 16)); radioButton[1].setFont(new Font("Tahoma", Font.BOLD, 16)); radioButton[2].setFont(new Font("Tahoma", Font.BOLD, 16)); radioButton[3].setFont(new Font("Tahoma", Font.BOLD, 16)); lblCorrect.setFont(new Font("Tahoma", Font.BOLD, 14)); lblCorrect.setForeground(Color.BLUE); lblCorrect.setHorizontalAlignment(JLabel.CENTER); lblWrong.setFont(new Font("Tahoma", Font.BOLD, 14)); lblWrong.setForeground(Color.red); lblWrong.setHorizontalAlignment(JLabel.CENTER); bNext.addActionListener(this); } @SuppressWarnings("resource") private String readTextFile(String fileName, int fileNumber) { // TODO Auto-generated method stub StringBuilder stringBuilder = new StringBuilder(); BufferedReader reader = null; try { Random random = new Random(); //int rand = random.nextInt(20); URL url = getClass().getClassLoader().getResource("files/" + fileNumber + ".txt"); File file = new File(url.toURI()); try { reader = new BufferedReader(new FileReader(file)); String line = null; stringBuilder = new StringBuilder(); String ls = System.getProperty("line.separator"); try { while(( line = reader.readLine()) != null ) { stringBuilder.append(line); stringBuilder.append(ls); } } catch(IOException e) { e.printStackTrace(); } } catch(IOException e) { e.printStackTrace(); } } catch(Exception e) { e.printStackTrace(); } return stringBuilder.toString(); } @Override public void actionPerformed(ActionEvent ae) { // TODO Auto-generated method stub if(ae.getSource().equals(bNext)) { //if nothing selected, display a message, //else: get the answer and display. if(!radioButton[0].isSelected() &amp;&amp; !radioButton[1].isSelected() &amp;&amp; !radioButton[2].isSelected() &amp;&amp; !radioButton[3].isSelected()) { JOptionPane.showMessageDialog(this,"Please select an Answer.", "Nothing selected", JOptionPane.OK_OPTION); return; } else //when user select an answer. { String strAnswer = ""; if(radioButton[0].isSelected()) { strAnswer = radioButton[0].getText().trim(); } else if(radioButton[1].isSelected()) { strAnswer = radioButton[1].getText().trim(); } else if(radioButton[2].isSelected()) { strAnswer = radioButton[2].getText().trim(); } else if(radioButton[3].isSelected()) { strAnswer = radioButton[3].getText().trim(); } if(strAnswer.equals(store[1].trim())) { String strCorrect = lblCorrect.getText(); if(strCorrect.equals("")) { strCorrect = "0"; } vCorrect = Integer.parseInt(strCorrect); vCorrect = vCorrect + 1; lblCorrect.setText("" + vCorrect); playSound("correct"); } else { String strWrong = lblWrong.getText(); if(strWrong.equals("")) { strWrong = "0"; } vWrong = Integer.parseInt(strWrong); vWrong = vWrong + 1; lblWrong.setText("" + vWrong); playSound("wrong"); } int fileNumber = generateRandomNumber(); URL url = null; String file = "files/" + fileNumber + ".txt"; url = this.getClass().getClassLoader().getResource(file); String strQuestion = readTextFile(url.toString(), fileNumber); store = strQuestion.toString().split("!!!"); lblQuestion.setText("&lt;html&gt;" + store[0] + "&lt;/html&gt;"); clearTextInAllRadioButtons(); assignRandomNumberToRadioButton(store[1]); getTheImageAndDisplay(fileNumber); } } } private void playSound(String sound) { // TODO Auto-generated method stub try { URL url = null; if(sound.equals("correct")) { url = this.getClass().getClassLoader().getResource("sound/ding.wav"); } else if(sound.equals("wrong")) { url = this.getClass().getClassLoader().getResource("sound/buzz.wav"); } AudioInputStream audioIn = AudioSystem.getAudioInputStream(url); // Get a sound clip resource. Clip clip = AudioSystem.getClip(); // Open audio clip and load samples from the audio input stream. clip.open(audioIn); clip.start(); } catch (UnsupportedAudioFileException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (LineUnavailableException e) { e.printStackTrace(); } } private void clearTextInAllRadioButtons() { // TODO Auto-generated method stub radioButton[0].setText(""); radioButton[1].setText(""); radioButton[2].setText(""); radioButton[3].setText(""); bg.clearSelection(); } public static void main(String[] s) { Testing mr = new Testing(); mr.pack(); mr.setVisible(true); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload