Salve,
ho un programma interamente scritto in java e perfettamente funzionante con XP.
Ieri ho provato ad eseguirlo su un portatile e su un pc ,entrambi montavamo come s.o. Vista
Nel portatile nessun problema mentre nel pc non funzionavaVVoVe:
Dopo due ore d'imprecazioni varie e assortite sono riuscito a trovare i metodi che bloccavano l'esecuzione
I metodi incriminati sono :
1:
2:codice:Random numero = new Random();
ora provo a risolvere il problema e quindi vi chiedo :codice:public String getSerialNumber(String drive) { String result = ""; try { File file = File.createTempFile("tmp", ".vbs"); file.deleteOnExit(); FileWriter fw = new java.io.FileWriter(file); String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n" + "Set colDrives = objFSO.Drives\n" + "Set objDrive = colDrives.item(\"" + drive + "\")\n" + "Wscript.Echo objDrive.SerialNumber"; // see note fw.write(vbs); fw.close(); Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath()); BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = input.readLine()) != null) { result += line; } input.close(); } catch (Exception e) { System.out.println("Foo bar " + e); System.exit(1); } if (result.trim().length() < 1) { System.exit(1); } return result.trim();
1)perchè gli stessi metodi hanno comportamenti diversi pur lavorando sotto lo stesso sistema operativo?
2)una classe di java (come import java.util.Random) non dovrebbe funzionare a prescindere dal sistema operativo?![]()
3)sapete come potrei ricavare il numero seriale (non di volume) dell'hard disk a prescindere dal s.o. usato?


VVoVe:

Rispondi quotando
