- Motorola Edge 50 Neo - az egyensúly gyengesége
- Hívószám-hamisítás
- Magisk
- One mobilszolgáltatások
- iPhone topik
- Íme az új Android Auto!
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Szívós, szép és kitartó az új OnePlus óra
- Samsung Galaxy Fit 3 - keveset, de jól
- Honor Magic6 Pro - kör közepén számok
Ú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?:))
- sziku69: Fűzzük össze a szavakat :)
- Rágyúr a macOS-re a 3DMark
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- Milyen processzort vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen billentyűzetet vegyek?
- Motorola Edge 50 Neo - az egyensúly gyengesége
- További aktív témák...
- Eladó konfig! Ryzen 7 7800X3D 2TB SSD 64GB DDR5 RX9070XT 16GB!
- Új, makulátlan állapotú Samsung Galaxy Buds FE, fehér, fél év garancia
- Új, makulátlan állapotú Samsung Galaxy Watch7 44mm ezüst, 2 év garancia
- Új, makulátlan állapotú Samsung Z Fold 6 256GB Tengerészkék, független, 2 év garancia
- Használt TP-Link Deco M4 - AC1200 Router (Mesh-ként is használható)
- Eladó ÚJ, BONTATLAN Samsung Galaxy A05s 4/64GB ezüst / 12 hónap jótállással!
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- Csere-Beszámítás! Asus Tuf RX 9070 XT 16GB Videokrátya! Bemutató darab!
- Bomba ár! Lenovo ThinkPad X260 - i5-6G I 8GB I 256GB SSD I 12,5" HD I HDMI I CAM I W10 I Gari!
- DELL Precision 7540 - Intel Core i9-9980HK, RTX 3000 (nagyon erős GPU-val)
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged