2017-10-11 2 views
0

Je crée une petite application qui sert à enregistrer des données en utilisant javafx ... le problème est de savoir que lorsque je lance mon application, le fichier est introuvable .. error code de messageLe chemin du fichier est correct mais le fichier d'erreur ne s'affiche pas

`java.io.FileNotFoundException: null\sample-app.conf (The system cannot find the path specified)` 

pour les lignes d'erreur sont les suivantes

private String configFile = System.getProperty("user.home") + File.separator + "sample-app.conf"; 

public boolean loadLicense() { 
     // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 
    try { 
      properties.load(new FileInputStream(configFile)); 

      licenseString = properties.getProperty("license-string"); 
      activatedLicenseString = properties.getProperty("activated-license-string"); 
      if (properties.getProperty("license-type") != null) { 
       licenseType = Integer.parseInt(properties.getProperty("license-type")); 
      } 
      if (properties.getProperty("activated-license-type") != null) { 
       activatedLicenseType = Integer.parseInt(properties.getProperty("activated-license-type")); 
      } 

      hostname = properties.getProperty("floating-license-server-hostname"); 
      if (properties.getProperty("floating-license-server-port") != null) { 
       int portnumber = Integer.parseInt(properties.getProperty("floating-license-server-port")); 
      } 

      return true; 
     } catch (IOException ex) { 
      Logger.getLogger(RegController.class.getName()).log(Level.SEVERE, null, ex); 
     } 

     return false; 
    } 
+3

'System.getProperty (« C: \\ \\ utilisateurs Lenovo »)' n » t faire ce que vous voulez. On ne sait pas ce que vous voulez que cela revienne, mais il revient null. – jdv

+0

@jdv je crée une petite application basée sur l'enregistrement de données dans le fichier de configuration ... mais je donne le chemin aussi là mais montrant le message d'erreur "Le système ne peut pas trouver le chemin spécifié" –

+0

C: \ users \ leveno est le chemin d'accès au fichier –

Répondre

0

on ne sait pas pourquoi vous construisez un chemin en utilisant System.getProperty("C:\\Users\\Lenovo") mais cela est presque certainement de retour nul. C'est probablement la racine de votre problème, mais puisque vous ne fournissez pas de pile, il n'est pas possible d'en être sûr.

C'est parce que System.getProperty() est intended to return a value for a property key que vous passez et « C: \ Users \ Lenovo » n'est pas une clé de propriété (sauf si vous utilisez la machine virtuelle Java avec une option -D définir comme une propriété). Ainsi, la solution dépend de ce que vous voulez faire.

  1. Peut-être que ce fichier .conf est toujours dans ce même endroit. Si tel est le cas, définissez configFile sur la version String fixe de votre chemin d'accès.
  2. Peut-être que vous voulez passer en -D "my.license.conf.rootdir=C:\\Users\\Lenovo" à la JVM, auquel cas vous utiliserez System.getProperty("my.license.conf.rootdir") à la place et construisez votre chemin de cette façon.
  3. Autre chose. Vous construisez un chemin d'une autre manière qui a du sens pour vous.

Quoi que vous fassiez, une fois que vous avez un chemin de chaîne, vous pouvez valider en utilisant l'API typique comme File.exists() avant de le passer sur le code qui attend en fait le chemin vers un fichier spécifique pour être présent sur le système, et correct dans votre code.

C'est, vous voulez, dans l'ordre:

  • Derive, assembler, ou définir un chemin, probablement comme une sorte de chaîne
  • Valider ce chemin afin que vous savez qu'il ya un béton, sur représentation -disk de ce chemin
  • passer ce chemin d'accès validée sur le code en outre, que ce soit sous forme de chaîne ou un autre objet
+0

J'ai modifié le code s'il vous plaît vérifier –