Hirdetés
- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
tick
aktív tag
Üdv. HTTP szervert próbálok írni gyakorlásként. Chrome-nak van egy preload funkciója ami nyit egy plusz socketet amit gyakorlatilag csak parkoltat esetleges későbbi tartalmak párhuzamos letöltésére.
A socket stream-jéből nem lehet olvasni így csak feleslegesen foglal egy szálat timeout-ig.
Van valami jó módszer arra hogy ezeket meg tudjam különböztetni egy valós http kéréstől ami valamilyen hiba miatt nem tudott írni a streamre? -
tick
aktív tag
Sziasztok,
JSch-val próbálkozok. Az alap shell példa nagyon jó, lényegében egy működő terminált kapok vele, de nyilván nem ez a célom.
Nap mint nap rendszeresen kell ugyanazt a parancs sorozatot kiadnom egy érték kinyeréséhez amivel dolgoznék tovább. Ezt szeretném egyszerűsíteni akár vizuálisan egy gombbal vagy egy egyedi paranccsal. (tudom hozhatnék létre shell scriptet, de nem egy szerverről és nem egy userről van szó)Lényegében a stream-ekkel van gondom. A példa System.in-t és out-ot használ.
Szeretnék System.in-re írni, de ez gondolom ilyen egyszerűen nem kivitelezhető. Van valami módja hogy pipe szerűen egy InputStream-re vezessem a System.in-t és emellett más forrásból is tudjak rá írni? Avagy a billentyűzetes System.in-ről érkező input működjön tovább, de egy függvényből is tudjak rá inputot küldeni?Az már egy mellékes kérdés hogy az out stream-el is játszani kell, de bízom benne ha az inputra megtalálom a megoldást, akkor az is menni fog

-
tick
aktív tag
-
tick
aktív tag
Üdv újra!
Main.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
Ha eclipse-ben exportnál "extract required libraries" opciót választom akkor a fenti kód a .jar fájl elérési útvonalát adja meg, "package required libraries" esetén pedig null-t.
A kérdés az lenne hogy miért? És mi működne package esetén? OS-től függetlenül -
tick
aktív tag
1. Elvi szinten nagyon nem ertek egyet az ilyen modon torteno AES kulcs megadassal (gyakorlatilag 256^16 helyett kb. 80^16 kulcsot "engedsz meg" - klavirol elerheto kis/nagy betuk, szmaok, gyakoribb jelek), ezzel kapasbol mar matematikailag is tobb mint 8 nagysagrenddel csokkented a lehetosegeket... de ha az emberek jelszoadasi szokasait nezzuk, kb. beepited a rendszerbe a betoresi pontot a human tenyezovel).
2. Mi az oka annak, hogy a char array-t string tombbe masolva akarod kiegesziteni? Nem latom a koncepciot.
Sot azt sem igazan, hogy minek jon be a char array... te egy 16 hosszu stringet akarsz, akkor ha nagyobb, akkor subString, ha kisebb, akkor meg mondjuk (ha nagyon egyszeru/fapados kodot szeretnel) ciklusban hozzaadsz amig nem jo a hossz egy "c"-t.
Vagy me'g egyszerubb ha mindkettot egy lepesben intezed el... azaz a bejovo stringhez alapbol hozzaadod azt a fix stringet, amiben 16 db 'c' van, es veszed a subString-gel az elso 16 karaktert. Ez mindharom esetre egyetlen utasitassal visszaadja az altalad va'gyott tipusu kiegeszitest.szerk. kellett nekem ennyit gepelni

Köszönöm szépen a választ pont így oldottam meg végül a 2-es pont problémáját.

Nem házi feladat, de nem is komoly dolog. Szükséges valahogy tárolnom az user-pass kombót. Nem szerettem volna plain textként így jött az AES + bináris amit egy egyéni key/pin véd. Ha valaki elég ügyes hogy kiszedje/feltörje, akkor sincs kockázat. -
tick
aktív tag
AES128 bit kulcsot szeretnék generálni String input alapján. A String hossza bármi lehet. A függvény a következőt csinálná:
-Ha a String 16 karakter akkor nincs teendő
-Ha több mint 16 karakter akkor ArrayUtils.subArray(key.toCharArray(), 0, 16) majd ezt a végén vissza String-gé
-Ha kevesebb mint 16 karakter (N hosszú), akkor key.toCharArray(), egy új CharArray-be N-ig a key értékei, azon felül pedig egy karakter. A példában "c".Így minden esetben 16 karakter hosszú kulcsot kapok. Ez működik is (String.valueOf-fal). Viszont nem 128 bit lesz a végeredmény.
16 vagy több karakterrel működik hibátlanul. A probléma akkor keletkezik ha ki kell egészíteni plusz karakterekkel: Invalid AES key length: 28 bytes
Jelenleg sysout esetén nem is a key-t kapom meg, hanem a referenciáját.String pin = "1234";
...
...
// így fut le ha 16-nál rövidebb a pin
String[] keyArr = new String[16];
pinArr = pin.toCharArray();
for(int i=0;i<pin.length();i++) {
keyArr[i] = String.valueOf(pinArr[i]);
}
for(int i = pin.length();i<16;i++) {
keyArr[i] = "c";
}
key = String.valueOf(keyArr);
System.out.println(key); // String helyett reference
Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, aesKey); // java.security.InvalidKeyException: Invalid AES key length: 28 bytes
byte[] encrypted = cipher.doFinal(password.getBytes());Lejárt a szerkesztési idő:
UPDATE, találtam egy egyszerűbb megoldást ami működik is
for(int i = 0;i<16-pin.length();i++)
addition+="c";
key=pin+addition; -
tick
aktív tag
AES128 bit kulcsot szeretnék generálni String input alapján. A String hossza bármi lehet. A függvény a következőt csinálná:
-Ha a String 16 karakter akkor nincs teendő
-Ha több mint 16 karakter akkor ArrayUtils.subArray(key.toCharArray(), 0, 16) majd ezt a végén vissza String-gé
-Ha kevesebb mint 16 karakter (N hosszú), akkor key.toCharArray(), egy új CharArray-be N-ig a key értékei, azon felül pedig egy karakter. A példában "c".Így minden esetben 16 karakter hosszú kulcsot kapok. Ez működik is (String.valueOf-fal). Viszont nem 128 bit lesz a végeredmény.
16 vagy több karakterrel működik hibátlanul. A probléma akkor keletkezik ha ki kell egészíteni plusz karakterekkel: Invalid AES key length: 28 bytes
Jelenleg sysout esetén nem is a key-t kapom meg, hanem a referenciáját.String pin = "1234";
...
...
// így fut le ha 16-nál rövidebb a pin
String[] keyArr = new String[16];
pinArr = pin.toCharArray();
for(int i=0;i<pin.length();i++) {
keyArr[i] = String.valueOf(pinArr[i]);
}
for(int i = pin.length();i<16;i++) {
keyArr[i] = "c";
}
key = String.valueOf(keyArr);
System.out.println(key); // String helyett reference
Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, aesKey); // java.security.InvalidKeyException: Invalid AES key length: 28 bytes
byte[] encrypted = cipher.doFinal(password.getBytes()); -
tick
aktív tag
Sziasztok,
Arrays.toString(charArr) után Eclipse konzol tömbként írja ki a stringem. (getClass String-nek ismeri fel) Ennek mi lehet az oka?
Konkrétan így:
[1, 2, 3, 4, 5, c, c, c, c, c, c, c, c, c, c, c]A másik nagy gondom hogy a felső 16 karakter így 48 bájtot foglal. Míg ha simán Stringként megadom csak 16-ot. Hogyan lehetne ezt orvosolni?
AES kulcs ellenőrzésről lenne szó. Ha nem éri el a 16 karaktert/bájtot akkor hozzádobál c betűket.
-
tick
aktív tag
Tudtok valami egyszerűen használható profilert? Esetleg olyat ami flame chartot is képes produkálni? Opcionálisan könnyen érthető leírást hozzá?
Találtam sok mindent, de vagy bele sem tudtam kezdeni a leírás alapján, vagy szimplán nem sikerült -
tick
aktív tag
Engem hasonló érdekelne, viszont valami komolyabb (főképp hosszabb terjedelmű) feladat. Akár egy project.
A munkámnak nincs köze se javahoz, se programozáshoz, viszont megnézném milyen végigvinni egy ilyen projectet. -
tick
aktív tag
Én nem látok itt semmi átalakítást. Működik is nekem:
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>seleniumtest</groupId>
<artifactId>seleniumtest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.45.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.16</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>Teszt osztály:
public class HtmlUnitTest {
@Test
public void testHtmlUnit() {
WebDriver driver = new HtmlUnitDriver();
driver.get("http://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("htmlunit");
element.submit();
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}Mondjuk alapból 2.15-ös htmlunit-ot használ a legújabb Selenium, szóval nagy változásokra nem kell számítani a 2.16-s verziótól...
Működik! Nem teljesen értem hogyan, hiszen maga a selenium is tartalmazza és nincs egy importom sem, ami direktben a külön függő HtmlUnit-ot hívná. De működik, Köszönöm!

Egyébként azért fontos, mert a 2.15-ös HtmlUnit nem volt hajlandó behozni oldalakat ahol tíltva van az SSLv3. Egy módosítást találtam megoldásként, ami 2.16-ba került be. -
tick
aktív tag
Azt használom most, viszont macerás. Néha egyszerűen minden ok nélkül megáll vagy elhagyja a cookie-kat és emiat logoutol a webappból. Sőt 3-ből ~1-szer az első get nem is kap választ és timeout-ol. 3-ból 2-szer pedig egy másodpercen belül megvan. Nincs network probléma, a forrás konstans elérhető.
Windows esetén még könnyen mellékelem a jar-ba és kimásolom az azonos mappába futáskor, még a bináris beállítása előtt.
Linux esetén viszont ha nincs telepítve, akkor nem hajlandó futni. (Fedora alapú linuxnál pedig működésre sem tudtam bírni, de ez nem jelent problémát, mivel az egyetlen redhat-es emberke átmigrál)@WonderCSabo: Selenium átalakította, itt látszik is a rengeteg selenium import.
-
tick
aktív tag
Ha rendes függőségkezelést használt (pl. Maven vagy Gradle), akkor egyszerűen csak deklarálni kell az újabb verziót és azt fogja használni. Ha az egybecsomagolt zipet használod, akkor ki kell dobni onnan kézzel a libs mappából a htmlunit jart, és berakni az újabbat.
Próbáltam cserélni, de utána class not found errorokat kaptam sajnos
(a file nevet is cseréltem, és próbáltam újra importálni is) -
tick
aktív tag
Selenium jar-ban vajon lehetne manuálisan frissíteni htmlunit-ot? Google nem siet a poodle reakcióval :/
-
tick
aktív tag
-
tick
aktív tag
Ja, nem kellett volna ennyit bor a vacsorahoz
(Mondjuk jelen esetben a BufferedWriternek sok ertelme nincs, az akkor jonne jol, ha sok kis irasod lenne, ha egyszer irsz csak, akkor csak lassit.)
(Egyebkent a logFile-t mindenestul is atadhatod neki, fogad File-t is a FileWriter konstruktora.)Exceptiont sem dob?
Nincs exception ez a bajom, már kigugliztam volna a megoldást

Megpróbáltam több féle módszert is amit google elém tárt, de egyszerűen egyik sem működik. És nem értem miért.Így működik!!
Köszi!if(!logFile.exists()){
logFile.createNewFile();
}
FileWriter fw = new FileWriter(logFile, true);
fw.write(s.toString() + System.getProperty("line.separator"));
fw.close(); -
tick
aktív tag
bw.write van, megpróbáltam szimplán FileWriterrel is, de akkor sem változik semmi.
Eclipse-ből futtatom, ha ez számít. A bin mappában létrejön a fájl, de üres. (ha létrejön, akkor kell is lennie benne valaminek, kap inputot)
-
tick
aktív tag
Üdv!
Egy saját "loggert" használok és console mellett fájlba is szeretném kiírni. A fájlt létrehozza sikeresen, de egyszerűen nem ír bele semmit. Mi lehet a gond?
public class Logger {
private static File logFile = new File(ClassLoader.getSystemClassLoader().getResource(".").getPath()+"log.txt");
public static void log(Object s) {
if(!Settings.logging) return;
//console
System.out.println("L: "+s);
//file
try {
if(!logFile.exists()){
logFile.createNewFile();
}
FileWriter fw = new FileWriter(logFile.getName(),true);
BufferedWriter bw = new BufferedWriter(fw);
bw.newLine();
bw.write(s.toString());
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} -
tick
aktív tag
próbálta már valaki a VS "code" (ingyenes, Linuxon is futó) verzióját? én vagyok béna vagy tényleg nem tud java-t futtatni?
-
tick
aktív tag
-
tick
aktív tag
Sziasztok!
Selenium-os kérdésem volna. Találkozott-e már valaki olyan problémával, hogy az abszolút xPath nem működik?
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"html/body/div[1]/div[2]/div[1]/div/div[1]/div/div/div/div[2]/div/div/div[1]/table[4]/tr/td/div/div/button[2]"}
Command duration or timeout: 20.05 secondsKipróbáltam prohardveren, facebookon, google-n, ha a relatív xPath-t kicserélem abszolút xPath-ra, gond nélkül megy. De a tesztelni kívánt oldalnál a fenti hibát dobja.
Thread.sleep-et tettem bele, wait-et is, de semmi.Sajnos csak az abszolút xPath jöhet szóba, mert a felületen lehetnek azonos nevű elemek, pl. gombok, azonos css-el, azonos class-al, és bizonyos részben random ID-val. Pl. név+random szám. Semmi más nem különböztet meg 2 vagy több elemet, csak az abszolút xPath.
Szia!
Firefox console megtalálja az xpath-t? -
tick
aktív tag
Sziasztok!
Tudtok jó Java "tananyagot" ajánlani? Az alapokat tudom, az OOP rész nem teljesen tiszta, hogy mit hogy kell használni.
Grafikus alkalmazások készítéséhez is keresnék tutorialt.Agyhullám Java, én ezt javaslom

-
tick
aktív tag
Megvan!

Biztos valami új verzió miatt, de már nem kell elé az xpath= csak simán így: //input[contains(@id,'TextBox_szerzodes')]
Plusz lassítani kellett a lejátszáson, mert hiába volt a szintaxisa megfelelő, akkor is hibára futott.Következő kérdés: mivel nyílhatnak egymásra panelek (akár több is, úgy képzeljétek el mint egy vastagkliensben) ezért lehetséges az, hogy pl. akár több "Save" gomb is legyen, mind különböző, de dinamikus ID-val. Így mivel tudom megkülönböztetni őket? Class? Esetleg van lehetőség ezzel a fenti megoldással ÉS kapcsolatba fűzni még feltételt, hogy pontosan melyik "Save" gombot akarom megnyomni?
(A "Save" csak egy példa, a szemléltetés miatt)Első megközelítésben így gondolkodom. Az egyedi ID témát hagyjuk, mert az egész motor így működik.
Köszönöm az eddigi helpet, értem miért kopaszodik az összes fejlesztő.

Ja! Options->Clipboard format mire való?

Csak WebDriverről tudok nyilatkozni. Ott findElement helyett findElements és megkeresed hányadik kell

pl:
ArrayList<WebElement> elements =
driver.findElements(By.xpath("//input[contains(@id,'TextBox_szerzodes')]"));
System.out.println(elements.get(0).getText());más: nem tiszta miért kellett lassítani, WebDriverben van wait:
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("id"))); -
tick
aktív tag
-
tick
aktív tag
-
tick
aktív tag
-
tick
aktív tag
-
tick
aktív tag
Gracefully módon nem tudod megoldani. Rondán meg lehet oldani, de az nem szép

Köszönöm az infokat

-
tick
aktív tag
Sehogy, az interrupt() csak beállít egy flag-et amit neked kell futás közben ellenőrizned az isInterrupted() metódussal.
Egy-az-egyben kilőni a szálat nem tudod, régen lehetett a stop() metódussal de az elég sok problémát felvet ezért későbbi Java verziókban deprecated lett majd ki is vették, UnsupportedOperationExcepcion-t dob hogy véletlenül se használd.szóval a megoldás az marad ha minden lépés előtt ellenőrzöm a flaget
köszönöm -
tick
aktív tag
Berakhatod egy Map-be, de egyébként ez tipikusan a Factory minta.
Köszönöm.
Egy újabb kérdésem lenne: adott egy osztály ami Runnable-t implementál sok hosszú egymást követő folyamatból áll. Hogyan tudnám megszakítani a futását?
While-ba rakva a flaget változtatva csak akkor áll meg, ha már a végére ért.ezt próbáltam:
public void run() {
while(!Thread.currentThread().isInterrupted()) {
//do time consuming stuff
}
}
public void stop() {
Thread.currentThread().interrupt();
} -
tick
aktív tag
Üdv!
A lenti kód (természetesen más szöveggel) azt hivatott bemutatni jelenleg hogy indítok el egy job-ot a lenyomott menü szövege alapján. Van erre valami elegánsabb megoldás? (a menü elemek a saját action commandjukat küldik egy listenernek)
[azon kívül hogy elrejtem valami hasonló metódusba:
getJob(String jobname).run(); ]if(owner.getAction().name().equals("Do this then that") new WorkerJobDoThisThenThat.run();
if(owner.getAction().name().equals("Start something") new WorkerStartSomething.run();
if(owner.getAction().name().equals("Execute this") new WorkerExecuteThis.run();
if(owner.getAction().name().equals("Running out of ideas") new WorkerRunningOutOfIdeas.run();
Új hozzászólás Aktív témák
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Amlogic S905, S912 processzoros készülékek
- Rég várt frissítést kap az Android tárcsázója
- Allegro vélemények - tapasztalatok
- Autós kamerák
- Projektor topic
- Battlefield 6
- Miért vezet mindenki úgy, mint egy állat?
- Samsung kuponkunyeráló
- Milyen egeret válasszak?
- A Motorola Edge is különleges textúrával várható
- További aktív témák...
- GYÖNYÖRŰ MacBook Pro 14" M2 Pro 16 GB - 512 GB GAR ÉS jótállás!
- Intel Core ULTRA 9 285K +32GB 7600MHz Patriot Viper XTREME 5 DDR5 kit! (Bolti ár: kb 600ezer Ft!)
- Lenovo Legion Pro 5 - 16IRX10 - i9 14900HX - RTX 5070 - 32GB - 1TB
- 2000GB Gen5x4 NVMe SSD, 1 év gar GEN V!!! SK Hynix 2048GB PCB01 kb. 14GB/s / 12GB/s
- Lenovo Thinkcentre M710Q MINI PC,i3-7100T,8GB DDR4,256GB SSD,WIN11
- 27% - Konfiguráció G5905 / RX580 / H510 / 16GB 2666Mhz / 1TB SSD / 500W
- BESZÁMÍTÁS! ASUS ROG Ally X 24GB/1TB kézikonzol garanciával, hibátlan működéssel
- Keresünk Galaxy S23/S23+/S23 Ultra/S23 Fe
- Vállalom Xiaomi Okoskamerák szoftveres javíttását
- Akció!!! Sosemhasznált! HP OmniBook 5 i7-1355U 16GB 512GB 16" FHD+ Gar.: 1 év
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


(Mondjuk jelen esetben a BufferedWriternek sok ertelme nincs, az akkor jonne jol, ha sok kis irasod lenne, ha egyszer irsz csak, akkor csak lassit.)







