Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Java] Problemi con Windows Vista

    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 funzionava VVoVe:

    Dopo due ore d'imprecazioni varie e assortite sono riuscito a trovare i metodi che bloccavano l'esecuzione

    I metodi incriminati sono :

    1:
    codice:
    Random numero = new Random();
    2:
    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();
    ora provo a risolvere il problema e quindi vi chiedo :

    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?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Il fatto che Random non funzioni è quantomeno inquietante.

    Invece il manfunzionamento di getSerialNumber... Viene fatta una chiamata a Runtime, quindi viene invocato una applicazione del sistema operativo e trattandosi di Vista... non c'è poi tanto da stupirsi che su un computer possa funzionare e su un altro no...

    Sarebbe interessante vedere lo stackTrace degli errori, quindi se puoi postarli...

    Riguardo al modo con cui ottenere il serial number dell'hard disk, da una veloce ricerca risulta che sia una faccenda un po' complicata in quando da sola la JVM non è in grado di determinarlo.
    Bisogna per forza chiamare il sistema operativo. Magari con JNI.

    Ciao
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.