Problem z Uruchomieniem pliku Java.

0

Witam . Napisałem sobie prostą aplikację okienkową a mianowicie kalkulator. Pisałem w Eclipse , zapisałem i mam 2 pliki class. Przekompilowałem przez konsole cmd do pliku *jar . I mam problem z otwarciem tego pliku . Czytałem gdzieś ,że po edycji pliku MANIFEST i dopisaniu tam linijki : Main-Class: Kalkulator(tak się nazywa mój plik class) , będzie wszystko działać . Po dwukrotnym kliknięciu na plik po oczywistym zapisaniu pliku MANIFEST i nadpisaniu Biblioteki Winrar , nic się nie dzieje . Ani nie uruchamia się proces , ani żadne okienko . Dodam ,że w Eclipse normalnie program działał .

Ewentualnie jak by się dało to z tego pliku jar zrobić plik *exe .
Znalazłem program JSmooth ,ale kompletnie nie wiem jak się nim obsłużyć . Gdyby ktoś mógł podać link do tutoriala bądź filmu to był bym wdzięczny .

@Edit : Udało mi się znaleŹć program Launch4j , po przekompilowaniu przez ten program do exe ,otwieram plik a tam bład : Failed to load Main-Class Manifest attribute from. Może jakiś błąd w kodzie ? Ale wszystko działa w Eclipse

package kalkulator;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Kalkulator
{
static JTextField text;//Ustawia textfielda jako statycznego.
	public static void main(String[] args)
	{
		JFrame okno = new JFrame("Kalkulator");//Tworzy frame o nazwie okno.
		okno.setSize(250,350);//Rozmiar w pixelach (szerokość,wysokość)
		okno.setLocation(300, 300);//Okno pojawi się 300pix od lewej i 300pix od góry.
		okno.setResizable(false);//Czy użytkownik może zmieniać rozmiar okna.
		okno.setVisible(true);//Wyświetla frame o podanej nazwie.
		okno.setLayout(null);//Musi być to jeżeli programista chce sam ustalać gdzie mają być textfieldy itd.
		okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		text = new JTextField();
		text.setBounds(10, 10, 230, 50);
		Font time_new = new Font("Time News Roman",Font.BOLD,24);// (Nazwa,Pogrubienie itd.,rozmiar)
		text.setFont(time_new);//Ustawia w text fieldzie czcionkę.
		text.setHorizontalAlignment(JTextField.RIGHT);//Dzięki temu piszemy od prawej strony.
		okno.add(text);//Musi być pod stworzonym oknem.
		
		JButton button = new JButton("Oblicz");
		button.setBounds(10, 70, 40, 40);
		okno.add(button);
		button.setBorder(null);
		
		
		
		
		button.addActionListener(new ActionListener()
		{

			public void actionPerformed(ActionEvent arg0)     /*text.setText(text.getText() + "1");//Pobiera to co jest wpisane już w textfield */
			{                                                  // i dopisuje do tego to co jest w nawiasie.
			
				String str = text.getText();
				////////////////////////////////////////////////////////
				ScriptEngineManager mgr = new ScriptEngineManager();
			    ScriptEngine engine = mgr.getEngineByName("JavaScript");//
			    String foo = str;
			    try {
					text.setText(String.valueOf(engine.eval(foo)));		
					}
			    catch (ScriptException e)// Jeżeli wpisane dane nie są związane z obliczeniami np abcdef...
			    {
					
					JFrame error = new JFrame("Error!");
					error.setSize(250, 70);
					error.setLocation(300, 300);
					JLabel label = new JLabel ("Error! Podano złą wartość!");
					error.add(label);
					error.setVisible(true);
				}
                
				
			 
			}                                   
			
		});
		
		
		
		
	}
} 
0

U Ciebie główna klasa nazywa się kalkulator.Kalkulator (a nie Kalkulator).

0

Po dopisaniu do MANIFEST linijki Main-class: kalkulator.Kalkulator dalej nic się nie dzieje. Spróbuje jeszcze zrobić z tego exe i napisze czy działa.

@Edit : Teraz po zrobieniu pliku exe wyskakuje błąd ,że nie może odnaleźć Main-Class: kalkulator.Kalkulator.

0

Tzn, że źle tworzysz jara. Korzystasz z Eclipse, to wybierz File => Export => Runnable JAR file.

0

Plik jar tworzyłem przez konsole cmd . Ale teraz spróbowałem twego sposobu przez Eclipse . I wyeksportowałem plik ,ładnie zrobiło plik jar , ale dalej jest to samo . Więc problem nie tkwi w tym ,że plik jest zły ,tylko mój komputer nie radzi sobie z otwarciem tego pliku. Czym to może być spowodowane ? Gdzie ewentualnie szukać odpowiedzi ?

Dodaję załącznik z plikiem ,który został w ten sposób zrobiony , jak by ktoś mógł sprawdzić czy u niego działa. Bo prawdopodobnie program jest dobry , ale mój komputer tego nie otwiera. ;/

0

Działa, otwórz konsolę, przejdź do katalogu z plikiem jar i wpisz java -jar Kalkulator.jar. Dowiesz się co jest źle z Twoim komputerem.

0

@KumandoS moja szklana kula mówi że pewnie masz Javę JDK 1.7 i JRE 1.6. Kompilujesz w 7 a próbujesz uruchomić 6.

0

Shalon My Miszczu ! No comment xd Pisałem w 1.6 , JDK mam 1.7 . Czyli co mam teraz zrobić ? Bym mógł otworzyć ? Pobrać JDK 1.6 ? Ale mój kolega odpala normalnie u siebie ,a nie JDK , więc jak to cudo działa ?

A Jre mam i 6 i 7 ;D.

@Edit : Oj my miszczu ni huga . W danych projektu przestawiłem na JDK 1.7 , przekopiowałem kod , wyeksportowałem do jar w eclipse i dalej to samo.

0

No to odpal z konsoli przez java -jar cośtam.jar i daj nam tu stracktrace.

0

Przez konsole się uruchamia . A więc w czym problem ?

0

To sprawdź w systemie co uruchamia ci jary przez dwuklik ;)

0

Uzupełnię, sprawdź jaki program (która wersja javy) jest skojarzony z plikami JAR.
W konsoli wpisz java -version.
Porównaj numery wersji.

0

Shalom , ale jak mam sprawdzić jaki proces ? Gdy uruchamiam mój kalkulator to żaden proces nie wyskakuje , a gdy jakieś inne gry np Minecraft to normalnie jest proces java.exe .
Co do Bogdans :

Wypis z konsoli :
Java version "1.7.0_03"

0

Kliknij prawym na tego jara i daj "otwórz za pomocą" i wybierz binarkę z javą 1.7

0

Teraz po zamianie kojarzenia tego typu plików ,po odpaleniu pliku szybko uruchamia się konsola i zamyka ,i nic się nie dzieje .

@Edit : Odświeżam .

1 użytkowników online, w tym zalogowanych: 0, gości: 1