IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Honza
Člen
Avatar
Honza:28.9.2021 14:11

Ahoj, potřeboval bych poradit, minule jsem si na flashku dával soubor s příponou .java na kterém sem pracoval, akorát nevím, jak ho teď otevřít na jiném pc v Netbeans, bez toho aniž bych musel ten zdroják kopírovat, ale i když to nějak zkopíruju, tak to řvalo, že to není ve složce s názvem toho balíčku, to sem vyřešil, ale pak po spuštění to nevypisovalo diakritiku. Takže jaký je správný postup při nahrávání a spouštění .java souboru v Netbeans, tak aby to fungovalo stejně jako na počítači, kde byl kód vyvíjen ? Děkuji

 
Odpovědět
28.9.2021 14:11
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Honza
Atrament:28.9.2021 14:17

Netbeans fungují na úrovni projektů, takže si na tu flashku nahrej celý ten projekt ne jenom jeden java soubor, a pak otvírej v Netbeans celý ten projekt.

 
Nahoru Odpovědět
28.9.2021 14:17
Avatar
Lubor Pešek
Člen
Avatar
Odpovídá na Honza
Lubor Pešek:4.10.2021 17:04

Možná špatně chápeš, jak Java jako taková funguje.
Máš mnoho způsobů, jak spouštět Java programy. Když pominu webové technologie, které k tomu potřebují aplikační servery, tak máš v podstatě dvě možnosti.

  • Buď spustíš zkompilovaný kód (.class soubor)
  • Nebo spustíš archiv (.jar soubor)

V souborech .java uchováváš svůj vlastní kód, který jsi někde naťukal.
Ten je přizpůsobený takovému jazyku, aby ti to bylo bližší a abys ho mohl lépe číst. Jenže to, co napíšeš, tak to ten počítač nepochopí. Kupříkladu počítač nepochopí, že tady existuje nějaká třída s názvem System. I ve 21. století stále počítače pracují na principu jedniček a nul:)
Je to docela pěkně popsané v první lekci zdejšího Java tutoriálu. Ty musíš svůj zdrojový kód ZKOMPILOVAT do tzv. bytekódu, který potom převede použitý interpret do strojového kódu a s tím už umí počítač pracovat.

Tak a teď co to pro tebe znamená v praxi:)
To, že si přeneseš .java soubor, tak to je v podstatě to hlavní krédo celého programu. Jak máš zdroják, můžeš s tím něco dělat.
Pokud máš jen .java soubory, tak na počítači, kde je nainstalováno JDK (a správně nastaveno - což bohužel musí dnes programátoři i kontrolovat, protože od té doby, co to převzal oracle, tak instalace Javy dělá mnohým programátorům problémy), tak můžeš buď:

  • použít příkaz javac v příkazovém řádku (ale proč bys takovou blbost dělal, když žijeme už ve století, kdy máš jednodušší cesty)
  • Stačí si vytvořit nový projekt (prázdný nový projekt) v libovolném IDE a potom do adresáře src překopíruješ svůj zdroják. Potom jediné, na co si musíš dát bacha, tak pokud používáš nějaké knihovny, tak aby byly součástí toho projektu.

No a to IDE ti ten zdroják při spuštění samo zkompiluje (do .class souborů) a ty ho můžeš opět pustit.

No ale předpokládám, že už jsi asi něco naprogramoval a chtěl by ses tím pochlubit a samozřejmě by bylo divné, kdybys to chtěl někomu poslat a on by si musel instalovat IDE a dělat výše uvedenou proceduru. To je samozřejmě blbost a Java nabízí řešení.
V podstatě na počítači, kde běží běhové prostředí (JRE - Java Runtime Enviroment), tak můžeš spustit jakékoliv jarko (JAR = Java ARchiver). To je obyčejná zazipovaná složka, která v sobě obsahuje manifest soubor, kterým spustí main metodu.

Existuje několik způsobů, jak toto JARko vytvořit. Potom už ti stačí posílat to JARko a máš spustitelnou aplikaci (i na dvojklik z plochy;) )
Je o tom tady i tutoriál, ale v podstatě...
Pokud používáš netbeans, tak Jarko se ti vygeneruje, když zvolíš položku z menu **Run **-> **Build Project **(nebo v horní liště klikneš na to kladívko - to je to samé).
No a pak se podíváš do adresáře projektu. Vytvořil se ti tam nový adresář dist (distribute) a v něm máš JAR soubor.

V IDEI je to malinko komplikovanější (ale to je jen dobře -zvlášť proto, protože si můžeš do JARka takhle lehčeji přidat i zdrojové kódy). Ono totiž ten JAR soubor jde rozzipovat (úplně stejně, jako když rozzipuješ zip adresář). No a v netbeansech se ti zaarchivují pouze .class soubory. V IDEI si tam můžeš takto přidat i třeba zdrojáky (což vůbec není špatné). Je potom samozřejmě nebezpečí, že pokud to někomu pošleš a on to rozzipuje, tak má ihned i tvé zdrojáky k dispozici a může si tvoji aplikaci upravit. Záleží čistě na tobě, jak se rozhodneš a jak to použiješ.
V IDEI tedy musíš nastavit nejdřív tzv. Artifact a až ten potom zbuildíš a vytvoříš z něj archív.

S Eclipsem ti neporadím. Pro mě osobně je to příšerné IDE, které používá spoustu svých vlastních názvů a pro mě osobně je strašně nepřehledné a nenabízí tolik nastavitelných možností, které bych si přál. Naopak tě to táhne do svých vlastních konvencí. Ale to je čistě můj osobní názor. Jestli se tu někdo najde, kdo v tom dělá, tak ti možná poradí, ale já eclipse těžce zavrhuji.

No a pak je tu další způsob... v podstatě to, co dělají ta IDEčka na pozadí za tebe. A to, že si to napíšeš v cli (v příkazové řádce). Není to nijak velice složité, ale já osobně do takovýchto věcí začátečníky nezatahuji, protože jednak to v praxi využiješ minimálně a hlavně na co se učit něco, co za tebe udělá IDE? Je sice hezké, že to třeba víš, ale je to fakt zbytečné.
Ovšem kdyby tě to zajímalo, tak tady mám postup, který funguje. (ale nezlob se na mě, formátovat ho nebudu, protože je to fakt jen na okrasu).

Budeme používat GIT BASH v domnění, že je vše nainstalováno a nastaveno správně.

  1. Otevřete si git bash (třeba na ploše nebo kdekoliv)
  2. Příkazem „touch“ vytvořte nějaký soubor s příponou .java

touch Soubor.java
3. Příkazem „vim“ otevřete super editor (pokud neumíte s vimem, tak jste hodně špatní, ale ok, tak si to otevřete v nějakém jiném editoru)
vim soubor.java
4. Napište jednoduchý prográmek pro vytvoření malého okýnka
import javax.swing.*;

public class Soubor {
        public static void main(String[] args) {
                JFrame frame = new JFrame();
                frame.setSize(400, 400);
                frame.setLocationRelativeTo(null);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
        }
}

5. Zkompilujeme program pomocí příkazu javac
javac Soubor.java
6. Pro zkoušku zkusíme spustit aplikaci pomocí příkazu java
java Soubor
7. Nyní vytvoříme manifest soubor (a použijeme rychlejší cestu, takže rovnou i spustíme editor)
vim manifest.txt
8. A napíšeme do něj mocný příkaz, kterým určíme main class
Main-Class: Soubor
9. Teď vytvoříme jar soubor pomocí příkazu jar cvfm
jar cvfm Testovaci.jar manifest.txt *.class (nebo by se dalo napsat jar cvfm Testovaci.jar manifest.txt Soubor.class, protože máme jen jeden class soubor)
10. No a spustíme si jarko
java –jar Testovaci.jar

Nahoru Odpovědět
4.10.2021 17:04
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.