Mi código es el siguiente:

package org.minuteware.jgun;

import org.apache.commons.configuration.*;

class ConfigReader {
    public void getconfig() {
        Configuration config;
        try {
            config = new PropertiesConfiguration("gun.conf");
        } catch (ConfigurationException e) {
            e.printStackTrace();
        }
        String day = config.getString("sync_overlays");
        System.out.println(day);
    }
}

Eclipse tiene dos problemas con este código:

  1. Para la package org.minuteware.jgun; línea que dice The type org.apache.commons.lang.exception.NestableException cannot be resolved. It is indirectly referenced from required .class files
  2. Para la línea de } catch (ConfigurationException e) { dice No exception of type ConfigurationException can be thrown; an exception type must be a subclass of Throwable

He encontrado ConfigurationException en Java?, pero la solución no ayuda.

2 Comentarios

  1. 38

    El núcleo de Configuración De Apache Commons tiene las siguientes dependencias en tiempo de ejecución:

    Ponerlos en su classpath así. Su problema en particular es causado por la falta Lang dependencia.

    • El problema era que yo había Lang3, pero el legado Lang2 era necesario. Bastante extraño que no es compatible con la versión 3.
    • Justo punto, voy a editar la respuesta para incluir los números de versión, como se menciona en la página dependencias.
    • Yurchuk – Apache tiene una nueva manera de hacer archivo de propiedades para Lang3. Por favor, ver a mi «respuesta» a continuación. Yo sé de un par de años más tarde, pero espero que pueda ser útil a alguien que esté luchando con este mismo tipo de problema.
  2. 0

    Esta biblioteca problema me plagado por un par de días hasta que averiguar el por qué de Apache fue querer que yo uso antiguo de las bibliotecas.

    Si se ha solicitado el uso de mayores Lang bibliotecas por el compilador, asegúrese de que usted está haciendo su Apache archivo de propiedades de la NUEVA manera, no a la manera antigua (la que utiliza la mayor lang bibliotecas).
    https://commons.apache.org/proper/commons-configuration/userguide/howto_filebased.html
    es el sitio de Apache, obtuve mi código siguiente, que hace un CONJUNTO básico de operación en contra de un archivo en mi máquina Windows.

    import org.apache.commons.configuration2.Configuration;
    import org.apache.commons.configuration2.FileBasedConfiguration;
    import org.apache.commons.configuration2.PropertiesConfiguration;
    import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
    import org.apache.commons.configuration2.builder.fluent.Parameters;
    
    public final class Settings implements Serializable {
    
    private Configuration config;
    private String propertiesFilePath;
    private FileBasedConfigurationBuilder<FileBasedConfiguration> builder;
    
    public Settings(String propertiesFilePath) {
        Parameters params = new Parameters();
        File propFile = new File(propertiesFilePath);
        builder = new FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
                .configure(params.fileBased()
                        .setFile(propFile));
        try {
            config = builder.getConfiguration();
        } catch (Exception e) {
            System.out.println("Exception - Settings constructor: " + e.toString());
        }
    }//end constructor
    
    public void setValue(String key, String value) throws Exception {
            config.setProperty(key, value);
            builder.save();
     }//end setter method
    }//end class

Dejar respuesta

Please enter your comment!
Please enter your name here