Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446

    caricamento variabili da file .cfg fallito :(

    salve a tutti avrei questi due files:
    Main.java

    import java.io.*;
    import java.util.*;

    public class Main
    {

    private Settings settings;

    public void main(String a[]) throws Exception
    {
    Settings mySettings= new Settings();
    settings=Settings.getInstance();
    settings.load(new FileInputStream("settings.cfg"));
    System.out.printf(mySettings.getName());

    }
    }

    e Settings.java

    import java.io.*;
    import java.util.*;


    class Settings {
    public static final Settings settings = new Settings();

    public String Name;
    public Integer Port;

    public Settings()
    {
    Name=new String();
    Port= new Integer(0);
    }
    public static Settings getInstance()
    {
    return settings;
    }

    public void save(FileOutputStream outStream)
    {
    try
    {
    Properties prop = new Properties();
    prop.setProperty("Name", Name);
    prop.setProperty("Port", Port.toString());

    }catch (Exception e)
    {
    System.out.println("Error on saving:"+e.toString());
    e.printStackTrace();
    }
    }

    public void load(FileInputStream inStream)
    {
    try
    {
    Properties prop = new Properties();
    prop.load(inStream);
    Name=prop.getProperty("Name");
    Port=new Integer(prop.getProperty("Port"));

    }catch (Exception e)
    {
    System.out.println("Error on loading :"+e.toString());
    }
    }

    public String getName()
    {
    return Name;
    }
    public void setName(String Name)
    {
    this.Name=Name;
    }
    public Integer getPort()
    {
    return Port;
    }
    public void setPort(Integer Port)
    {
    this.Port=Port;
    }

    }

    e un file settings.cfg con questo contenuto:

    Name=Prova
    Port=587

    il main dovrebbe richiamare un metodo del file settings.java che a sua volta dovrebbe leggere una variabile nel file indicato(settings.cfg) nella compilazione non ricevo errori ma il programma eseguendolo non funziona:

    java.lang.NoSuchMethodError: main
    Exception in thread "main"
    Process completed.

    dove sbaglio?
    grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non ti manca un "static" nella dichiarazione del main?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    se aggiungo static void al main mi da un errore nella compilazione:

    non-static variable settings cannot be referenced from a static context

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Se vuoi un programma eseguibile, questo deve avere un main che sia public static void e che riceva come argomento un array di String. Punto.

    Risolvi "rapidamente" trasformando
    codice:
    private Settings settings;
    in
    codice:
    private static Settings settings;
    In verità ci sarebbe da rivedere la classe Settings perché non è proprio user friendly
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    grazie per la risposta andrea,ora non mi da alcun errore durante la compilazione lo eseguo correttamente,ma non mi visualizza il contenuto della variabile :S,aiuti?

    Process completed.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ho rimesso mano al codice

    codice:
    import java.util.*;
    import java.io.*;
    
    class Settings {
    
    private String Name;
    private Integer Port;
    
    public Settings() {
      this("", 0);
    }
    
    public Settings(String Name, int port) {
      this.Name = Name;
      Port = new Integer(port);
    }
    
    public Settings (String cfgFileName) throws Exception {
      this();
      this.load(new FileInputStream(cfgFileName));
    }
    
    public void save(FileOutputStream outStream) {
      try {
        Properties prop = new Properties();
        prop.setProperty("Name", Name);
        prop.setProperty("Port", Port.toString());
      }
      catch (Exception e) {
        System.out.println("Error on saving:"+e.toString());
        e.printStackTrace();
      }
    }
    
    public void load(FileInputStream inStream) {
      try {
        Properties prop = new Properties();
        prop.load(inStream);
        Name=prop.getProperty("Name");
        Port=new Integer(prop.getProperty("Port"));
      }
      catch (Exception e) {
        System.out.println("Error on loading :"+e.toString());
      }
    }
    
    public String getName() {
      return Name;
    }
    
    public void setName(String Name) {
      this.Name=Name;
    }
    
    public Integer getPort() {
      return Port;
    }
    
    public void setPort(Integer Port) {
      this.Port=Port;
    }
    
    }
    codice:
    public class TestSettings  {
      public static void main(String[] args) throws Exception {
        Settings mySettings = new Settings("settings.cfg");
        System.out.print(mySettings.getName());
      }
    }
    Edit: ho editato, facendo l'incolla mi ero perso mezza classe Settings
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    il codice da te modificato funziona egregiamente,grazie mille!corro a studiarmi le tue modifiche ! ti ringrazio ancora!!

  8. #8
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    salve,vorrei apportare una piccola modifica al codice..ovvero vorrei che il codice leggesse più righe ad esempio
    Name:ciao
    a tutti!

    come dovrei modificarlo?Andrea aiutami ancora!

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.