- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Lítium-ion/Li-ion akkumulátorok
- AMD Navi Radeon™ RX 9xxx sorozat
- Szünetmentes tápegységek (UPS)
- Milyen billentyűzetet vegyek?
- Azonnali informatikai kérdések órája
- Hobby elektronika
- Riasztó topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- TCL LCD és LED TV-k
Új hozzászólás Aktív témák
-
Lortech
addikt
Nyilván minden függőséget oda kell tenni mellé, hogy forduljon. Kiexportálod a teljes jar forrását, behúzod IDE alá egy projekt forrásaként. Ekkor a jaron belüli függőségekkel megvagy, ha egyéb libtől is függ a lefordítandó osztály, akkor azt is build pathhoz adod. A cannot find symbol hibák hiányzó típusokat jelentenek, ha nem tudod, hol a hiányzó függőség, rá kell keresni az alkalmazás/konténer egyéb csomagjaiban (jar,war,ear), ha vannak.
-
n00n
őstag
A hibák nagy részét kijavítottam, három maradt amivel nem tudok mit kezdeni:
SajatPanel.java:379: error: cannot find symbol
/* 305 */ Logger.getLogger(SajatFrame.class.getName()).log(Level.SEVERE, null, ex);
^
symbol: class SajatFrame
location: class SajatPanel
SajatPanel.java:386: error: cannot find symbol
/* 312 */ SajatDialog mdialog = new SajatDialog(null, true);
^
symbol: class SajatDialog
location: class SajatPanel
MentesPanel.java:386: error: cannot find symbol
/* 312 */ SajatDialog mdialog = new SajatDialog(null, true);
^
symbol: class SajatDialog
location: class SajatPanel
3 errorsA SajatFrame és a SajatDialog külön classok.
-
Lortech
addikt
Persze, jadolod (pl. jd-gui), módosítod, és újrafordítod, a classt kicseréled a jar-ban.
(Feltéve, hogy a licence megengedi.)
Közben figyelj, hogy a class verzió (major/minor) egyezzen, azaz lehetőleg ugyanazzal a jdk-val fordítsd, amivel eredetileg fordítva lett. Ebben a MANIFEST.MF segíthet, ha rendesen ki van töltve, de javap-vel érdemes leellenőrizni. -
Cathfaern
nagyúr
Ha logikailag egy alkalmazás (pl. nyilvános oldal + annak admin felülete), akkor nem sok értelme van. Ha valami cross-site login dolgot akarsz (pl. van egy már elterjedt oldalad, sok felhasználóval, és akarsz csinálni egy teljesen mást, de közös bejelentkezést akarsz), esetleg akkor lehet értelme a különvételnek.
-
Aha. Hat, multkor installaltam Windowst, aztan beirtam, hogy
C:\>cinst notepadplusplus 7zip java.jdk putty skype paint.net windirstat winscp greenshot git totalcommander conemu SourceTree foobar2000 kdiff3 Firefox poweriso IrfanView lighttable
... ittam egy teat, es mire vegeztem, ez mind fentvolt, magatol. A mysql, tomcat es tarsai ugyanigy felugranak, konzolbol. IntelliJ-t nyilvan nem tudsz repobol telepiteni te sem.
Szoval ezek a dolgok nagyreszt hozza nem ertesbol fakadnak es/vagy urban legendek. Lehet mindenen fejleszteni az esetek nagyreszeben. Van, ahol tenyleg jobb a Linux (peldaul Node.js-hez), van, ahol meg a Windows (nyilvanvaloan .Netes dolgokhoz).
-
-
bucsupeti
senior tag
Csináld meg először karakteres programként. Ha az működik utána csinálj hozzá gui-t. Szerintem sokkal jobban meg fogod érteni és el tudod szeparálni az alkalmazás egyes rétegeit és ha a gui-s részhez érsz, már egyértelmű lesz az is hogy hol is tárolódik az alkalmazás valamilyen adata...
Magyarul először az üzleti logikát dolgozd ki...
-
bucsupeti
senior tag
desktop alkalmazásnál ez miért probléma? bejelentkezéskor eltárolod egy objektumban az adatokat... Nyilván ennek az objektumot minden modulból elérhetőnek kell lenni.
Lehet hogy nem értem igazán hogy mit szeretnél.Vagy összekattintgattad a képernyőket és a login képernyőről a sikeres bejelentkezés után az infókat akarod továbbvinni?
-
bucsupeti
senior tag
Ez a példa amit felvázoltál Java EE tanulásra tényleg megfelelő. De ha most kezded a JAVA-t akkor lehet hogy inkább valamilyen lokális alkalmazást JAVAsolnék.
Az EE-t én is nem régen kezdtem és hatalmas a téma, rengeteg framework kínálja magát, az adatbázisokról és a perzisztenciakezelőkről nem is beszélve.A példád alapján én a következőt javaslom:
Csináld meg a felvázolt példát karakteres JAVA programként. Lehessen lekérdezni a szabad helyeket, amit egyenlőre kilistázna. Akár lehet bonyolítani hogy bekéri hogy a nézőtér melyik sorára kíváncsi a felhasználó, ezt beírva kiírná hogy az adott sorban milyen sorszámú székek szabadok.
Jó kis tanuló algoritmus lehet hogy megadja a felhasználó hogy hány helyet szeretne és kilistázza hogy hol tud ennyi széket egymás mellett foglalni stb...Ezt először csináld meg adatbázis nélkül a memóriában tárolva konténerekkel. Utána csináld meg JDBC-vel adatbázisban, majd valamilyen perzisztenciakezelővel.
Meg fogod tapasztalni hogy milyen jó dolog egy ORM rendszer.
Ezek után belekóstólhatsz a gui programozásba, lokális desktop alkalmazást csinálva swing komponensekkel.Ezek után jöhet a felvázolt weboldal, de ez nagyobb falat lesz az biztos. A JavaEE megismerése nem kis feladat. Meg kell ismerni az architekturát, a servlet konténereket, az alkalmazásszervereket. Utána jöhet az EJB programozás és valamilyen framework amivel kényelmesen tudod összerakni a ui-t.
A példa szerintem jó, meg lehet rajta keresztül sokmindent tanulni. Sok sikert és kitartást!
-
Senhi
aktív tag
Tiszta JavaEE-vel:
Db-nek jó szerintem a Mysql.
Szervernek a legegyszerűbb a TomEE, esetleg GlassFish.
Adatréteg JPA, hozzá providernek EclipseLink
Üzleti-logika: EJB-k
Megjelenítés: JSF + ehhez kiegészítésként PrimeFaces amivel több komponensed lesz. Mondjuk JSF helyett millió egy másik technológia van, majd többiek mondanak mást. -
axioma
veterán
Hat lassan jobban jarnal ket egyutt karbantartott arraylist-tel... veletlenszam maximuma es a szo kiragadasa szam alapjan egyszerubb, ha nem torolsz soha akkor oly tok mindegy, hozzafuzni egyutt kell, ennyi. Nem tudom, hogy a hatterben mivel dolgozik a hashmap, de ha van benne valami onszervezo fa, akkor azt is el tudnam kepzelni, hogy a sorszamok veletlenszerusege ellenere a kulonbozo atalakitos trukkokkel igy kapott szavak nem lesznek eleg veletlenszeruek.
A szo eleji nagybetut majd illene ignoralni ellenorzeskor... -
WonderCSabo
félisten
200 elemnél még egy sima array és lineáris keresés is elég... Ekkora elemszám már gyakorlatilag nulla a mai processzorteljesítményekhez, ha más adatszerkezetbe szervezed nem fogsz gyorsulást tapasztalni. 1 millió elemnél már igen.
Egyébként a legkényelmesebb erre a célra valamilyen kétirányú map, pl. Guava Bimap. Vagy ha egyirányú a tanulás akkor elég egy HashMap is.
-
axioma
veterán
Ugyan nem offline, es plane nem is programozas, de magara az eredeti a celra - ha a feltetelek nem akadalyok - ajanlom a meglevo quizlet.com-ot. Tobb gyakorlasi mod, kulonbozo szohalmazok definialasa, stb.
-
WonderCSabo
félisten
Átfutottam a kódot. fordfairlane megjegyzése teljesen helytálló, azt kell mondjam. Gyakorlatilag a teljes programért az Asztal osztály felel. Nem túl szép, hogy a GUI, az eseménykezelést és az üzleti logikát mind egyetlen osztályba szuszakolod bele. Először is szét kéne választani a GUI-t és a logikát. Erre lehet használni mindneféle architektúrát, pl. MVC-t de az se kell ide, elég legyen annyi, hogy a különböző Swing-es leszármozott osztályaid nem tartalmaznak logikát, továbbá a logikáért felelős osztályok nem is tudnak a GUI-ról. Továbbá az egész kódot lehetne dekomponálni, modulárisabbá tenni. Egy ilyen kártyajátéknál ez egész könnyü, hiszen ez iskolapélda is, pl. ilyen szereplőkről lehetne beszélni: játékos, pakli, kártya, menedzser (lépéseket vezérli), stb.
-
-v-
addikt
-
@Override
protected Integer doInBackground() throws Exception {JFrame frame = new JFrame();
frame.setSize(400, 200);
frame.setLocationRelativeTo(null);
FileCopierPanel panel = new FileCopierPanel();
FileCopier fc = new FileCopier();
panel.setFileCopier(fc);
frame.add(panel);
frame.setVisible(true);fc.copy(copyJob);
return null;}
Itt null-t adsz vissza, és Integert specifikálsz. Nem biztos, hogy ez a hiba, de ez így biztosan nem az igazi.
-
Helló!
Nagyjából a standard File API alkalmas arra, amit szeretnél. Fájl másolás, meglétének validálása abszolút nem gond. Viszont a diszk mount/unmount témakör már kérdésesebb. A java.lang.Process csomaggal szerintem ezt is meg lehetne oldalni. Viszont, a privilégiumszint emelést (root jog "megszerzése") is meg kell oldanod.
Biztosan van olyan, aki nagyobb tapasztalattal rendelkezik a témában mint én, hátha van ennél egyszerűbb megoldás is.
-
floatr
veterán
Ha már adott a rendszer, és nem szégyellném használni az OS adottságait, és shell parancsokat osztogatnék
Persze meg lehet kézzel csinálni a file másolgatást is, de a binugz shell parancsokkal gyorsabban lehet haladni, bár ezzel kötöd magad a rendszerhez.
-
TBG
senior tag
Ah, annyira rühellem, hogy harapófogóval kell kihúzni belőled mindent.
Tisztázzuk, olyan Java kód nincs, ami a megakadályozza, hogy kihúzzák a pendrive-ot. Azt tudod csinálni, ahogy korábban is mondtam, hogy az /mnt/pendrive könyvtárat csekkolod...ha már nem létezik, akkor le van választva.... -
WonderCSabo
félisten
Ez attól függ, hogy mekkorák a fájlaid, amiket másolsz. Ha sok kicsi fájlod van, akkor kis buffert érdemes választani, ha nagyokat, akkor lehet nagyobbat is.
A Files.copy() metódusban 8K-s buffer van alapból, érdemes azt választani, valószínűleg a Java mérnökei hosszas tesztelés után választották azt a méretet. Ja és nem megy megás, hanem egy kilobájtos buffer van a Te kódodban.Na már megint megelőztek.
-
TBG
senior tag
Akkor pedig az a gyanúm, hogy fut a gc a sok objektum miatt és ezért nem látsz memória növekedést. Próbáld meg a cikluson kívül deklarálni a stream-eket..tipp...esetleg nézhetnéd, hogy a fájlműveletek hogyan alakulnak OS szinten. Lehet, hogy az OS-ben torlódnak a másolási műveletek.
-
WonderCSabo
félisten
Egyébként nekem az a tippem, hogy a szamlalo kisebb, mint 100, ezért annak az egész típusú osztásnak eredménye 0 lesz. Így a következő műveletben 0-val osztasz, és emiatt AritmethicException dobódik. Vagy esetleg a szamlalo eleve 0.
Superhun megelőzött, miközben a hszt írtam.
-
Futtass egy ciklust a konkrét másolás előtt, amiben megszámolod, hogy hány fájl nem létezik a célmappában a forrás mappából. Miután ez megvan, kell egy másik számláló, amit megnövelsz eggyel, ha nem létezik egy fájl és másolni kell. A százalék pedig a (float) atmasoltFajlokSzama / masolandoFajlokSzama * 100;
-
n00n
őstag
Csak azt kellene megszámolnom ami nem létezik fájl. Eddig így néz ki (ez a létezőket is beleszámolja):
private void fajlokSzama(String dirPath) {
File f = new File(dirPath);
File[] files = f.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
File file = files[i];
if (file.isDirectory()) {
szamlalo++;
fajlokSzama(file.getAbsolutePath());
} else {
szamlalo++;
}
}
}
}Ötlet?
Ugye a file-ba van benne az elérési út. Pl d:/innen\masol\1.fajl. Ebben kellene a d:/innen/ lecserélni d:/ide/-re.
-
-
TBG
senior tag
Nem elég részletes a workaround. Belenyúlt a gyári osztályba vagy csak egy @Override-t használt?
Szerk:
http://developer.classpath.org/doc/javax/swing/ProgressMonitorInputStream-source.html
Elvileg egy extend elég lenne, csak a ProgessMonitor ugyancsak int-et vár és nem long-ot.
76-93Szóval azt is extendálni kellene...
-
WonderCSabo
félisten
Ott vmi gáz lesz, mert a SwingWorkernek pont az a lényege, hogy a doInBackground fv, amit az execute hív meg, egy külön szálon fut le.
Cím:
UIManager.put("ProgressMonitor.progressText", "Progress title?");
-
n00n
őstag
További kérdés: Keresem, de nem találok rá módot, hogy átírjam a ProgressMonitorInputStream címét, illetve, hogy ne legyen cancel gomb. Nincs ilyen konstruktora és metódusai sem. Ötlet?
Szerk.: Valóban. Én néztem be. Ebben a hozzászólásban azonban még mindig nem tudtam megoldani a címet és mégse gombot.
-
modder
aktív tag
Ilyen egyszerű esetekben, illetve ha fontos a sebesség, érdemes inkább megkeresni a ";" helyét String.indexOf vagy String.lastIndexOf függvénnyel, aztán a két adatot a String.substring függvénnyel kiszedni az eredetiből.
Fapadosabb megoldás, de gyorsabb.
10 sornál nem lesz érezhető különbség, de több száz sornál már igen.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- The Division 2 (PC, XO, PS4)
- Android alkalmazások - szoftver kibeszélő topik
- Autós topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- E-roller topik
- Samsung Galaxy A54 - türelemjáték
- Kertészet, mezőgazdaság topik
- Lítium-ion/Li-ion akkumulátorok
- Windows 10
- További aktív témák...
- Üzletből, garanciával, Macbook Pro Retina 14" 2021, M1 32GB RAM/1TB SSD Space gray
- HP EliteBook x360 830 G8 Core i5 1145G7 2.6GHz/16GB RAM/512GB
- UF Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -60% i7-1360P 16/1TB Iris Xe 2,8K OLED 90Hz
- Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -60% i7-1260P 16/512 Iris Xe 2,8K OLED 90Hz
- Új DELL Inspiron 16 Fémházas Multimédiás Laptop 16" -40% Ryzen 7 8840U 8mag 16/1TB FHD+ IPS
- AKCIÓ! Intel Core i9 14900K 24 mag 32 szál processzor garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASUS TURBO RTX 3090 24GB GDDR6X videokártya garanciával hibátlan működéssel
- Új és régi konzolok Okosítása/Softmodoloása, és Szoftveres szintű javítása - RÉSZLETEK A LEÍRÁSBAN
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 16/32/64GB RAM RTX 4060Ti 8GB GAMER PC termékbeszámítással
- Bomba ár! Lenovo ThinkPad P43s - i7-8G I 8GB I 256GB SSD I Nvidia I 14" FHD I Cam I W10 I Garancia!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged