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

Balíky – Java – Fórum – Programujte.comBalíky – Java – Fórum – Programujte.com

 

Kuba-$0
Newbie
26. 8. 2008   #1
-
0
-

zdravím, prosim vas.
zacinam s javou a sve zkusebni programky ukladam do jine slozky nez defaultni.
na programovani pouzivam NetBeans IDE 6.1.
Potrebuju poradit jak dostat do programu ty zakladni baliky (util, string, .....).
(a) Dela se to nejak v nastaveni NetBeansu, nebo si ty baliky mam zkopirovat primo do nejakeho podadresare slozky, v niz mam svuj program?
(b) Cetl jsem taky neco o importovani baliku. napr "import java.io.*"

muzete mi to prosim trochu objasnit? treba oba zpusoby a - b (jestli ovsem jdou).
pripadne me vyvest z omylu??

dopredu diky

Nahlásit jako SPAM
IP: 85.132.224.–
KIIV
~ Anonymní uživatel
8632 příspěvků
26. 8. 2008   #2
-
0
-

ty standardni importy sou vetsinou ve svym adresari a cestu k nim si udrzuje kompilator... ikdyz v ostatnich jazycich jde vetsinou pridat i nejaky adresar pomoci direktivi prekladace...

a precetl sis k cemu ten balik slouzi?

Nahlásit jako SPAM
IP: 77.237.136.–
Kuba-$0
Newbie
26. 8. 2008   #3
-
0
-

jo, precetl jsem si kcemu jsou baliky... a za dalsi, programuju taky i trochu v C, takze vim o cem je rec. jen mi to dela problem pridat.
a jak rikas, jinde to jde i pomoci direktivy prekladace...
ale tady jsem ztraceny... ty baliky proste nemuze kompilator najit a hlasi mi to chybu. tak nevim co s tim....

Nahlásit jako SPAM
IP: 85.132.224.–
KIIV
~ Anonymní uživatel
8632 příspěvků
26. 8. 2008   #4
-
0
-

tak hod nekam zdrojaky....

Nahlásit jako SPAM
IP: 77.237.136.–
Mihulik0
Návštěvník
26. 8. 2008   #5
-
0
-

Ahoj,
co jsou balíčky tedy víš. Co se týče samotného importu:
-do aplikace je automaticky importován balíček java.lang. Tzn. třídy z toho balíčku můžu používat bez explicitního uvedení balíčku, ve kterém se nacházi.
Tzn. ve svém kódu můžu mít:
{
System.out.println("Tento zápis je akvivalentní zápisu java.lang.System.out.pr...");
System.exit(0);
}

-pokud chci do aplikace importovat obsah celého balíčku, použiji zápis:
import java.io.*;
Od této chvíle můžu používat třídy z toho balíčku stejně jako v předešlém případě balíček java.lang. Tzn.:
{
String filePath=".....";
new File(filePath);
}

-pokud chci improtovat jen konkrétní třídu z balíčku, použiji zápis import java.lang.File;
Od této chvíle můžu používat třídu FIle jako v případě výše, ovšem toto je špatně:
{
File file=new File("...");
new FileReader(file);
}
Musel bych použít explicitní zápis balíčku (nebo správněji řečeno-plný název třídy):
{
File file=new File("...");
new java.io.FileReader(file);
}

-žádná balík string neexistuje. Existuje jen třída String, která je součástí balíčku java.lang. Tzn. nemusíš uvádět její import, ani její plný název. Ve skutečnosti je to ovšem java.lang.String.

-existuje ještě statický import (slouží k importu statických členů), ovšem tím bych se teď vůbec nezatěžoval. Jeho používání se stejně příliš nedoporučuje, jelikož znepřehledňuje kód. Když už jsme u toho, tak ani zápis importu celého balíčku (např. import java.io.*;) se příliš nedoporučuje, protože pak není vidět, co se ve třídě opravdu používá. Lepší je hezky naimportovat všechny třídy, co se opravdu používají. Slušné IDE to stejně udělá za tebe;-)

-všechny výše zmiňované balíčky jsou součástí Java SE, tzn. nemusí se překladači nijak "speciálně sdělovat" jejich existence a můžeš je využívat zkrátka vždy.

-pokud potřebuješ využít jinou knihovnu, tak ji musíš sdělit překladači (v NB se to dá hezky nastavit v nastavení projektu). Pak už můžeš opět využívat její balíčky jak je výše uvedeno.


Napadla mě snad jen jedna situace, kdy by jsi mohl mít s importy problém:

Představ si, že v aplikaci používáš knihovnou, která obsahuje balíček: cz.neco.io a součástí toho balíčku je třída Reader.
Ve své třídě používáš jak třídu java.io.Reader, tak cz.neco.io.Reader. V tomhle případě by mohl nastat následující problém:
import java.io.Reader;
import cz.neco.Reader;
{
...
Reader reader=new Reader(...);
...
}
A jakou třídu má teď JVM využít, že?

Naštěstí řešení je jednoduché. Buď budu uvádět v případě obou tříd Reader jejich celá jména (java.io.Reader a cz.neco.Reader), nebo provedu import jen jedné z nich (import java.io.Reader;) a v případě druhé třídy budu uvádět její celé jméno (cz.neco.Reader).




Doufám, že jsem alespoň trochu pomohl, a že jsem vůbec odpovídal patřičně k otázce;-)


BTW: Omlouvám se za případné překlepy, nemám teď moc času, tak se mi nechce číst po sobě příspěvek ještě jednou:-[

Nahlásit jako SPAM
IP: 85.13.98.–
Kuba-$0
Newbie
26. 8. 2008   #6
-
0
-

tu nejde ani o zdrojaky, ale o to, jak tam vlozit dane baliky.... na to zadne zdrojaky nemam.... mam tu treba na zkousku jeden programek, takovy lehky z knihy, ale oni ty baliky moc neresi....

import java.util.*;   //tohle mi nejde

import java.string.*; //tohle mi nejde

class retezce {

public static void main(String[] args) {

// prvni vec na kterou potrebuju balik "util"
Map map = new HashMap();
Double refDouble = new Double(1.23);
Double refDouble1 = new Double(54);
map.put("key", refDouble);
map.put("key1", refDouble1);
refDouble = (Double)map.get("key1");
double d2 = refDouble.doubleValue();
System.out.println("D2: " + d2);

// dalsi vec na kterou potrebuju balik "string" (aspon podle erroru)
Set mnozina = new HashSet();
mnozina.add("iva");
mnozina.add("jarda");
mnozina.add("tomas");
mnozina.add("pavel");
mnozina.add("honza");
mnozina.add("kuba");
mnozina.add("kvetoslava");
Iterator it1 = mnozina.iterator();

while(it1.hasNext()) {
String element1 = (String) it1.hasNext();
System.out.println("Element: " + element1);
}
}
}
intalacni soubory od NetBeans a javy mam na C.
tento program mam ulozen ve slozce: D:\java\retezce
zde jsou dalsi 4 podslozky: biuld, src, nbproject, test
nevim co vic dodat.....
kam mam pridat ty baliky? nebo jak je teda pripojit?

Nahlásit jako SPAM
IP: 85.132.224.–
Mihulik0
Návštěvník
26. 8. 2008   #7
-
0
-

Koukám na ten tvůj zdroják....

import balíčku java.util by ti měl jít. Ovšem že ti nefunguje druhý import, není nic zvláštního, jelikož žádný taková balíček neexistuje! Však se podívej do API Java SE http://java.sun.com/javase/6/docs/api/ ;-)
Leda že by v té knížce používali nějaké své knihovny a ty jsi je neměl v přiřazené k projekty...pokud ovšem knížka zavádí nějaký svůj balíček java.string, tak tu knížku okamžitě hoď z okna...Je to dobrá rada:-)

Nahlásit jako SPAM
IP: 85.13.98.–
Kuba-$0
Newbie
26. 8. 2008   #8
-
0
-

-> Mihulik
Moc dekuju za vysvetleni. zkusim si s tim jeste pohrat a snad mi to pujde bez problemu... :smile2:

Nahlásit jako SPAM
IP: 85.132.224.–
Mihulik0
Návštěvník
26. 8. 2008   #9
-
0
-

Ještě jsem si uvědomil jednu věc, která by ti možná mohla pomoct...
Příkazy importu totiž musí být na prvním místě v zdrojovém kódu! Před ním může být jen jeden řádek a to zařazení třídy do nějaké balíčku (package cz.neco;)

Nahlásit jako SPAM
IP: 85.13.98.–
darthdeus0
Stálý člen
26. 8. 2008   #10
-
0
-

To Kuba-$ : Netbeansy ti samy doplní všechny importy, stačí když někde použiješ třídu co je v nějakém balíčku a hned ti to nabídne (žlutě podtrženo a vlevo žárovka) doplnění importu .. případně ctrl + shift + i ... jinak pokud to ten balíček nenajde, tak ti pravděpodobně chybí knihovny, které přidáš buď přímo z .jar souboru do libraries u projektu a pak už ty importy netbeansy vyřeší ...

Nahlásit jako SPAM
IP: 85.70.184.–
(1..100).inject(&:+) komu se to nelíbí, ať mi klobouk políbí :P
Mihulik0
Návštěvník
26. 8. 2008   #11
-
0
-

To Kuba-$ :
No nemáš vůbec zač. Snad ti ten můj chaotickej výklad alespoň trochu pomůže;-)
Každopádně mám takovej pocit, jestli problém nebude opravdu někde jinde. Například používání nějaké knihovny. Jelikož ten import balíčku java.util by ti opravdu měl fungovat. Pokud tedy máš opravdu příkaz importu na prvním místě ve zdrojáku (resp. za příkazem zařazení balíčku).

Každopádně držím palce no, ale té rady ohledně knížky, pokud opravdu zavádí nějaký svůj balíček java.string se opravdu drž;-)

Nahlásit jako SPAM
IP: 85.13.98.–
Mihulik0
Návštěvník
26. 8. 2008   #12
-
0
-

darthdeus napsal:
To Kuba-$ : Netbeansy ti samy doplní všechny importy, stačí když někde použiješ třídu co je v nějakém balíčku a hned ti to nabídne (žlutě podtrženo a vlevo žárovka) doplnění importu .. případně ctrl + shift + i ... jinak pokud to ten balíček nenajde, tak ti pravděpodobně chybí knihovny, které přidáš buď přímo z .jar souboru do libraries u projektu a pak už ty importy netbeansy vyřeší ...


To je pravda...ale pokud člověk ještě pořádně neumí "manuálně" pracovat s balíčky/importy, tak se přece nemůže spoléhat na IDE...to jen obchází problém, ale jednou na něj stejně narazí a bude to mnohem horší.
Ale je fakt, že práce s NB je pohodová:-)

Nahlásit jako SPAM
IP: 85.13.98.–
darthdeus0
Stálý člen
26. 8. 2008   #13
-
0
-

To Mihulik : IDE člověka občas naučí věci na které by sám nepřišel .. a hlavně se to člověk naučí mnohem rychleji a nemusí řešit blbosti typu chybějící středník/import atd...

Nahlásit jako SPAM
IP: 85.70.184.–
(1..100).inject(&:+) komu se to nelíbí, ať mi klobouk políbí :P
Mihulik0
Návštěvník
27. 8. 2008   #14
-
0
-

darthdeus napsal:
To Mihulik : IDE člověka občas naučí věci na které by sám nepřišel .. a hlavně se to člověk naučí mnohem rychleji a nemusí řešit blbosti typu chybějící středník/import atd...


To nepochybně, ale proč to tak je by měl člověk vědět. A to ho IDE nenaučí...
Ale tak necháme týhle debaty, stejně je to off-topic:-)

Nahlásit jako SPAM
IP: 85.13.98.–
KIIV
~ Anonymní uživatel
8632 příspěvků
27. 8. 2008   #15
-
0
-

sem to tak cvicne zkousel zkompilovat...
import java.string muzes vyhodit presne jak tu nekdo zminoval ...

problem je String element1 = (String) it1.hasNext();
prirazujes boolean do stringu a to nejsou kompatibilni typy ... a nepomuze ti ani explicitni pretypovani...

jeste hledam metodu co tam asi chces pouzit...

Nahlásit jako SPAM
IP: 77.237.136.–
KIIV
~ Anonymní uživatel
8632 příspěvků
27. 8. 2008   #16
-
0
-

tak todle mi funguje akora to hlasi warningy:

Note: retezce.java uses unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.




import java.util.*; //tohle mi nejde

class retezce {
public static void main(String[] args) {
// prvni vec na kterou potrebuju balik "util"
Map map = new HashMap();
Double refDouble = new Double(1.23);
Double refDouble1 = new Double(54);
map.put("key", refDouble);
map.put("key1", refDouble1);
refDouble = (Double)map.get("key1");
double d2 = refDouble.doubleValue();
System.out.println("D2: " + d2);

// dalsi vec na kterou potrebuju balik "string" (aspon podle erroru)
Set mnozina = new HashSet();
mnozina.add("iva");
mnozina.add("jarda");
mnozina.add("tomas");
mnozina.add("pavel");
mnozina.add("honza");
mnozina.add("kuba");
mnozina.add("kvetoslava");
Iterator it1 = mnozina.iterator();

while(it1.hasNext()) {
String element1 = (String) it1.next();
System.out.println("Element: " + element1);
}
}
}

Nahlásit jako SPAM
IP: 77.237.136.–
Mihulik0
Návštěvník
27. 8. 2008   #17
-
0
-

1. Přiřazení hodnoty boolean do proměné typu String je samozřejmě blbost. Předpokládám ale, že se Kuba-$ jen upsal a ve skutečnosti chtěl volat metodu next().

2.Warning ti to háže, jelikož nejsou použity typově bezpečné kolekce, neboli generické kolekce. Viz. generiky http://java.sun.com/docs/books/tutorial/extra/generics/index.html

Nahlásit jako SPAM
IP: 85.13.98.–
KIIV
~ Anonymní uživatel
8632 příspěvků
27. 8. 2008   #18
-
0
-

To Mihulik : ja sem jen zkousel ten jeho kod :) v jave nedelam .. radsi mam perl :D na sms aplikace ideal

Nahlásit jako SPAM
IP: 77.237.136.–
Mihulik0
Návštěvník
27. 8. 2008   #19
-
0
-

KIIV napsal:
To Mihulik : ja sem jen zkousel ten jeho kod :) v jave nedelam .. radsi mam perl :D na sms aplikace ideal


Však já to nemyslel špatně, jen jsem doplňoval informaci, proč to háže warningy;-)

Nahlásit jako SPAM
IP: 85.13.98.–
KIIV
~ Anonymní uživatel
8632 příspěvků
27. 8. 2008   #20
-
0
-

To Mihulik : neni nad dobre informace

Nahlásit jako SPAM
IP: 77.237.136.–
Kuba-$0
Newbie
27. 8. 2008   #21
-
0
-

jeste sem nemel cas to zkusit, (byl jsem v praci), ale odzkousim ;-)
a jestli nekdo chcete vedet, tak se Javu ucim z knihy JAVA Hotová řešení Lubomír Brůha

Nahlásit jako SPAM
IP: 85.132.224.–
KIIV
~ Anonymní uživatel
8632 příspěvků
27. 8. 2008   #22
-
0
-

To Kuba-$ : tak hlavne aby tam ty hotovy reseni k necemu byly... jen kdyz se zamyslis tak nejvetsi ucelnost ma to na co prijde clovek sam... nikoliv to co mu predlozi uz hotove...

Nahlásit jako SPAM
IP: 77.237.136.–
Mihulik0
Návštěvník
27. 8. 2008   #23
-
0
-

Kuba-$ napsal:
jeste sem nemel cas to zkusit, (byl jsem v praci), ale odzkousim ;-)
a jestli nekdo chcete vedet, tak se Javu ucim z knihy JAVA Hotová řešení Lubomír Brůha


Knihu Java Hotová řešení sice neznám, ale již z názvu a popisu je vidět, že se nejedná o učebnici základů jazyka. Pokud tedy s Javou začínáš, tak asi nebude moc vhodná. Ale to už je samozřejmě na tobě...
Každopádně já velmi doporučuji přímo tutorialy od SUNu. Jim se nějaká knížka těžko vyrovná:-)

Nahlásit jako SPAM
IP: 85.13.98.–
Kuba-$0
Newbie
28. 8. 2008   #24
-
0
-

Kde ty tutorialy najdu??? das sem presny odkaz pls ???
jinak... sice s Javou zacinam, ale mam uz zaklady z Delphi a C. takze programovat celkem umim. jen potrebuju doladit ty javovske detaily...

Nahlásit jako SPAM
IP: 85.132.224.–
Amarella0
Duch
30. 8. 2008   #25
-
0
-

Ahojte, prosim vas kdo by me vedel poradit ako implementovat specialni baliky? ako je konkretne chapman.io.*. Pisu v prostredi eclipsu ktery me to nevi najst, dekuji

Nahlásit jako SPAM
IP: 85.207.42.–
Mihulik0
Návštěvník
7. 9. 2008   #26
-
0
-

Kuba-$ napsal:
Kde ty tutorialy najdu??? das sem presny odkaz pls ???
jinak... sice s Javou zacinam, ale mam uz zaklady z Delphi a C. takze programovat celkem umim. jen potrebuju doladit ty javovske detaily...


sorry, nevšiml jsem si tvé odpovědi...sice pozdě, ale třeba ti to k něčemu ještě bude...
http://java.sun.com/developer/onlineTraining/

Jinak C vs Java je neporovnatelné...o Deplhi nemluvím...

Nahlásit jako SPAM
IP: 85.13.98.–
Lukfi0
Newbie
4. 10. 2008   #27
-
0
-

Shodou okolností mám stejnou knihu jako Amarella, od S. J. Chapmana, a taky bych rád použil jeho balíčky, ale vůbec netuším, jak to udělat, kam je zkopírovat, co kde nastavit... prosím poraďte :smile11:

Nahlásit jako SPAM
IP: 80.188.88.–
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, 21 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ý