Nespustí se JAR soubor – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nespustí se JAR soubor – Java – Fórum – Programujte.comNespustí se JAR soubor – Java – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
12. 7. 2014   #1
-
0
-

Mám napsaný program (obyč. konzole), v Eclipse se normálně spustí. Když ho ale vyexportuju jako spustitelnej JAR soubor a poklikam na něj, jen přeblikne wait kurzor a nic se neděje. Rychlým probliknutím konzole to není, protože program čeká na vstup. Prostě se to vůbec nespustí.

Exportuju to takhle:

Připojen obrázek.

Kde by mohl být problém?

Nahlásit jako SPAM
IP: 93.91.154.–
Kit+15
Guru
12. 7. 2014   #2
-
0
-

#1 David Klouček
Zřejmě máš chybu v manifestu.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
12. 7. 2014   #3
-
0
-

Jo, nenastavil jsem v manifestu Main-Class. Teď se snažim podle návodu (http://www.mkyong.com/java/how-to-make-an-executable-jar-file/) nějak ten balíček dát dohromady, ale narážim na problém - všude píšou abych spustil příkaz "jar -cvfm.." a mě cmd vrací "jar není názvem vnitřního..". Zkoušim dát něco jako "java -jar -cvfm .." ale to skončí chybou "unable to access jarfile cvfm".

Nahlásit jako SPAM
IP: 93.91.154.–
Flowy0
Věrný člen
12. 7. 2014   #4
-
0
-

#3 David Klouček
ja mam jar normalne v jdk/bin ... mas ho nastaveny v path? mas tam jdk alebo jre?

Nahlásit jako SPAM
IP: 95.103.199.–
https://github.com/Flowy
Kit+15
Guru
12. 7. 2014   #5
-
0
-

#3 David Klouček
"jar" by měl být normálně spustitelný program. Možná ho nemáš v cestě.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
12. 7. 2014   #6
-
0
-

Moment, já se v tom ztrácim. Co se týče spuštění programu samotnýho:

  • poklikánim na ikonu to nejde
  • příkazem java soubor.jar to nejde
  • příkazem java -jar soubor.jar se normálně spustí

No a teď potřebuju do toho nějak vložit ten manifest.

Flowy, Kit: V jaký cestě? Teď jsem se dočetl, že musím nastavit tohle:

set PATH = %PATH%;C:\Program Files\Java\jdk1.7.0_07\bin

Ale příkaz "jar" pořád neexistuje.

Ještě: co teď čtu v návodech, používaj taky příkazy javac a apt, ty mi taky nefungujou.

Jinak když se kouknu do Program Files/Java mam tam: jdk1.6.0_26, jdk1.7.0, jdk1.7.0_07, jre6, jre7. To je v pořádku? Jako nainstalovanou mi to ukazuje v1.7.0_07.

Ještě dodatek: když dam pak echo %path% tak tam tu javu stejně nevidim.

Nahlásit jako SPAM
IP: 93.91.154.–
Kit+15
Guru
12. 7. 2014   #7
-
0
-

#6 David Klouček

Co znamená "poklikání na ikonu"? Kde?

  • javac Trida.java .... zkompiluje soubor "Trida.java" do souboru "Trida.class", ve kterém je "public class Trida"
  • java Trida ... je spuštění metody "main",  v souboru "Trida.class"
  • jar -cvfm Program.jar manifest.txt *.class ... zabalí všechny soubory s příponou .class do "Program.jar"
  • java -jar Program.jar ... je standardní spouštění aplikace

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
12. 7. 2014   #8
-
0
-

Tak jsem se dostal dál. Tu cestu k Javě jsem nastavil přes proměnné prostředí, nyní příkaz jar funguje. Ovšem další problém.

Zadal jsem příkaz jar -cvfm Test.jar manifest.txt a dostal hlášku "added manifest", ale když poklikam na Test.jar, opět se nespustí.

Pokud na něco přijdu, dopíšu to sem.

Kit: Poklikání na ikonu - 2klik na ten spustitelnej jar soubor.

Nahlásit jako SPAM
IP: 93.91.154.–
Kit+15
Guru
12. 7. 2014   #9
-
0
-
Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
12. 7. 2014   #10
-
0
-

manifest.txt: 

Main-Class: main

main.class

import java.util.*;
import java.util.Scanner;

public class main
{
    public static void main(String[] args)
    {
        System.out.println(new Date());
        Scanner sc = new Scanner(System.in);  
    }
}

Zadam jar cfm Test.jar manifest.txt a potom spustim program java -jar Test.jar a dostanu: could not find or load main class main

Když dam zadam jar cfm Test.jar manifest.txt main.class tak ten program přes java -jar Test.jar jde, ale přes ikonu ho pořád nespustim.

Nahlásit jako SPAM
IP: 93.91.154.–
Kit+15
Guru
12. 7. 2014   #11
-
0
-

#10 David Klouček
Pojmenovat třídu "main" je značně nestandardní a rozhodně tento název nedoporučuji. Ani neříká, co má ta třída dělat. Znáš snad v reálu nějaký objekt třídy "main"?

manifest.txt: 

Main-Class: Test

Test.java: 

import java.util.*;
import java.util.Scanner;

public class Test
{
    public static void main(String[] args)
    {
        System.out.println(new Date());
        Scanner sc = new Scanner(System.in);  
    }
}

Ten program vypíše datum a skončí.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
12. 7. 2014   #12
-
0
-

#11 Kit
Jasný, nechal jsem to jak mi to IDE vygenerovalo. Teď jsem to teda přejmenoval. No v konzoli to funguje, ale já potřebuju když to spustim přes ikonu, aby to tu konzoli zobrazilo.

Nahlásit jako SPAM
IP: 93.91.154.–
Kit+15
Guru
12. 7. 2014   #13
-
0
-

#12 David Klouček
IDE je výmluva    

jar -cvfm Test.jar manifest.txt Test.class

Ta konzole jen problikne a to okno se hned zavře.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
12. 7. 2014   #14
-
0
-

#13 Kit
Tenhle příkaz spouštím a píše mi to added manifest a adding Test.class.. ale ten jar se se stejně přes ikonu nespustí, jen přes příkaz java -jar Test.jar.. to je prostě do zblbnutí..

Nahlásit jako SPAM
IP: 93.91.154.–
Flowy0
Věrný člen
12. 7. 2014   #15
-
0
-

#13 Kit
Ta konzole jen problikne a to okno se hned zavře.

Nahlásit jako SPAM
IP: 95.103.199.–
https://github.com/Flowy
Kit+15
Guru
13. 7. 2014   #16
-
0
-

#14 David Klouček
Ten příkaz se spustí, proběhne a skončí? Pak to dělá přesně to co má.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
13. 7. 2014   #17
-
0
-

#16 Kit
Jasně, ale jenom když to spouštim přes příkazovej řádek. Když normálně kliknu na ikonu tak čekam, že se mě otevře konzola, ale ono se nic neděje, jenom problikne wait kurzor a vůbec nic se nespustí. Pro jistotu sem tam přidal Thread.sleep(1000); ale prostě žádná konzole nevyskočí.

Nečekal jsem, že budou takovýhle problémy s tou Javou.

Kdybych to chtěl spustit z příkaz. řádku jako Test.jar tak by to relativně mělo jít, ne? Taky nejde.

Prostě funguje jen java -jar Test.jar, nic jinýho.

Nahlásit jako SPAM
IP: 93.91.154.–
Kit+15
Guru
13. 7. 2014   #18
-
0
-

#17 David Klouček
Nevím, nemám s tím tu zkušenost. Klikání nepoužívám.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
13. 7. 2014   #19
-
0
-

#18 Kit
To já zase očekávam, že když si BFU stáhne aplikaci, tak jí bude spouštět jako klasickej program, ne přes příkazovou řádku.

Nahlásit jako SPAM
IP: 93.91.154.–
Kit+15
Guru
13. 7. 2014   #20
-
+1
-
Zajímavé

#19 David Klouček
Však až do té aplikace vložíš nějaká okýnka, tak se budou zobrazovat i po kliknutí.

Zatím můžeš zkusit si něco přečíst ze vstupu. Okno by mělo zůstat otevřené.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
z
~ Anonymní uživatel
268 příspěvků
13. 7. 2014   #21
-
+1
-
Zajímavé

Manifest ti vygeneruje Eclipse, nebo můžeš použít vlastní - viz dokumentace. Nemusíš jar vytvářet, nebo upravovat ručně.

Normálně se při instalaci Javy na Windows vytvoří asociace pro jar soubory, tak aby se spouštěly přes "javaw.exe -jar". Javaw nevytváří konzolové okno. Jestli ti jde o toto, tak nejjednodušší asi bude to při spuštění testovat a případně spustit ten jar znovu přes java.exe (bez w).

Nahlásit jako SPAM
IP: 213.211.51.–
13. 7. 2014   #22
-
0
-

To jsem nevěděl právě. S oknem to funguje normálně. Takže díky, vyřešeno.

Nahlásit jako SPAM
IP: 93.91.154.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý