Probléme de complation
hayfa1200
Messages postés
101
Statut
Membre
-
hayfa1200 Messages postés 101 Statut Membre -
hayfa1200 Messages postés 101 Statut Membre -
Bonjour,
j'ai un problème de compilation concernant une application sous netbeans,a chaque fois je compile,il me donne les erreurs suivant:
run:
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at com.anthonyeden.lib.util.XArrayList.<clinit>(XArrayList.java:86)
at com.anthonyeden.jnm.JNM.<clinit>(JNM.java:172)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 2 more
Could not find the main class: com.anthonyeden.jnm.JNM. Program will exit.
Exception in thread "main" Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
alors que j'ai définit le main class:
package com.anthonyeden.jnm;
import java.io.File;
import java.io.Reader;
import java.io.FileReader;
import java.io.InputStream;
import java.util.Iterator;
import com.anthonyeden.lib.log.Logger;
import com.anthonyeden.lib.log.LogManager;
import com.anthonyeden.lib.util.XArrayList;
import com.anthonyeden.lib.util.IOUtilities;
import com.anthonyeden.lib.config.Configuration;
import com.anthonyeden.lib.config.Dom4jConfiguration;
import com.anthonyeden.lib.config.MutableConfiguration;
import com.anthonyeden.lib.config.ConfigurationException;
import com.anthonyeden.jnm.ui.JNMWindow;
public class JNM{
public static void main(String[] args){
LogManager.setLoggerClassName("com.anthonyeden.lib.log.Log4JLogger");
for(int i = 0; i < args.length; i++){
if(args[i].equals("--nogui")){
useGUI = false;
} else if(args[i].equals("--config")){
i++;
config = args[i];
} else if(args[i].equals("--log")){
i++;
logConfig = args[i];
}
}
try{
File logConfigFile = new File(logConfig);
if(logConfigFile.exists()){
System.out.println("Using file config: " + logConfigFile);
LogManager.configure(logConfigFile);
log = LogManager.getLogger(JNM.class.getName());
//log.info("Using file config: " + logConfig);
} else {
LogManager.configure();
log = LogManager.getLogger(JNM.class.getName());
//log.info("Using basic configuration");
}
} catch(Exception e){
System.err.println("Error initializing logging");
e.printStackTrace();
return;
}
try{
loadConfiguration(new File(config));
} catch(Exception e){
System.err.println("Error loading configuration: " + config);
return;
}
if(useGUI){
JNMWindow app = new JNMWindow();
app.setVisible(true);
app.startMonitor();
} else {
JNMHeadless app = new JNMHeadless();
app.startMonitor();
}
JNM j= new JNM();
}
public static XArrayList getRegisteredMonitors(){
return registeredMonitors;
}
public static XArrayList getRegisteredActions(){
return registeredActions;
}
public static Monitor getMonitor(String className) throws Exception{
Iterator i = registeredMonitors.iterator();
while(i.hasNext()){
MonitorDefinition monitorDef = (MonitorDefinition)i.next();
if(monitorDef.getClassName().equals(className)){
return monitorDef.getMonitorInstance();
}
}
return null;
}
public static Action getAction(String className) throws Exception{
Iterator i = registeredActions.iterator();
while(i.hasNext()){
ActionDefinition actionDef = (ActionDefinition)i.next();
if(actionDef.getClassName().equals(className)){
return actionDef.getActionInstance();
}
}
return null;
}
private static void loadConfiguration(File file){
FileReader reader = null;
try{
reader = new FileReader(file);
loadConfiguration(reader);
} catch(Exception e){
e.printStackTrace();
} finally {
IOUtilities.close(reader);
}
}
private static void loadConfiguration(Reader reader) throws Exception{
configuration = new Dom4jConfiguration(reader);
loadConfiguration(configuration);
}
private static void loadConfiguration(Configuration configuration) throws ConfigurationException{
// load registered monitors
boolean firstMonitorElement = true;
Iterator registerMonitorElements = configuration.getChildren("register-monitor").iterator();
while(registerMonitorElements.hasNext()){
Configuration registerMonitorElement = (Configuration)registerMonitorElements.next();
MonitorDefinition monitorDef = new MonitorDefinition();
monitorDef.loadConfiguration(registerMonitorElement);
log.debug("Registering monitor " + monitorDef.getName());
registeredMonitors.add(monitorDef);
if(firstMonitorElement || monitorDef.isDefault()){
firstMonitorElement = false;
registeredMonitors.setSelectedItem(monitorDef);
}
}
// load registered actions
boolean firstActionElement = true;
Iterator registerActionElements = configuration.getChildren("register-action").iterator();
while(registerActionElements.hasNext()){
Configuration registerActionElement = (Configuration)registerActionElements.next();
ActionDefinition actionDef = new ActionDefinition();
actionDef.loadConfiguration(registerActionElement);
log.debug("Registering action " + actionDef.getName());
registeredActions.add(actionDef);
if(firstActionElement || actionDef.isDefault()){
firstActionElement = false;
registeredActions.setSelectedItem(actionDef);
}
}
}
public static final String DEFAULT_CONFIG = "jnm.xml";
public static final String DEFAULT_LOG_CONFIG = "log.properties";
private static Logger log;
private static boolean useGUI = true;
private static String config = DEFAULT_CONFIG;
private static String logConfig = DEFAULT_LOG_CONFIG;
private static MutableConfiguration configuration;
private static XArrayList registeredMonitors = new XArrayList();
private static XArrayList registeredActions = new XArrayList();
}
merci pour votre aide
j'ai un problème de compilation concernant une application sous netbeans,a chaque fois je compile,il me donne les erreurs suivant:
run:
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at com.anthonyeden.lib.util.XArrayList.<clinit>(XArrayList.java:86)
at com.anthonyeden.jnm.JNM.<clinit>(JNM.java:172)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 2 more
Could not find the main class: com.anthonyeden.jnm.JNM. Program will exit.
Exception in thread "main" Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
alors que j'ai définit le main class:
package com.anthonyeden.jnm;
import java.io.File;
import java.io.Reader;
import java.io.FileReader;
import java.io.InputStream;
import java.util.Iterator;
import com.anthonyeden.lib.log.Logger;
import com.anthonyeden.lib.log.LogManager;
import com.anthonyeden.lib.util.XArrayList;
import com.anthonyeden.lib.util.IOUtilities;
import com.anthonyeden.lib.config.Configuration;
import com.anthonyeden.lib.config.Dom4jConfiguration;
import com.anthonyeden.lib.config.MutableConfiguration;
import com.anthonyeden.lib.config.ConfigurationException;
import com.anthonyeden.jnm.ui.JNMWindow;
public class JNM{
public static void main(String[] args){
LogManager.setLoggerClassName("com.anthonyeden.lib.log.Log4JLogger");
for(int i = 0; i < args.length; i++){
if(args[i].equals("--nogui")){
useGUI = false;
} else if(args[i].equals("--config")){
i++;
config = args[i];
} else if(args[i].equals("--log")){
i++;
logConfig = args[i];
}
}
try{
File logConfigFile = new File(logConfig);
if(logConfigFile.exists()){
System.out.println("Using file config: " + logConfigFile);
LogManager.configure(logConfigFile);
log = LogManager.getLogger(JNM.class.getName());
//log.info("Using file config: " + logConfig);
} else {
LogManager.configure();
log = LogManager.getLogger(JNM.class.getName());
//log.info("Using basic configuration");
}
} catch(Exception e){
System.err.println("Error initializing logging");
e.printStackTrace();
return;
}
try{
loadConfiguration(new File(config));
} catch(Exception e){
System.err.println("Error loading configuration: " + config);
return;
}
if(useGUI){
JNMWindow app = new JNMWindow();
app.setVisible(true);
app.startMonitor();
} else {
JNMHeadless app = new JNMHeadless();
app.startMonitor();
}
JNM j= new JNM();
}
public static XArrayList getRegisteredMonitors(){
return registeredMonitors;
}
public static XArrayList getRegisteredActions(){
return registeredActions;
}
public static Monitor getMonitor(String className) throws Exception{
Iterator i = registeredMonitors.iterator();
while(i.hasNext()){
MonitorDefinition monitorDef = (MonitorDefinition)i.next();
if(monitorDef.getClassName().equals(className)){
return monitorDef.getMonitorInstance();
}
}
return null;
}
public static Action getAction(String className) throws Exception{
Iterator i = registeredActions.iterator();
while(i.hasNext()){
ActionDefinition actionDef = (ActionDefinition)i.next();
if(actionDef.getClassName().equals(className)){
return actionDef.getActionInstance();
}
}
return null;
}
private static void loadConfiguration(File file){
FileReader reader = null;
try{
reader = new FileReader(file);
loadConfiguration(reader);
} catch(Exception e){
e.printStackTrace();
} finally {
IOUtilities.close(reader);
}
}
private static void loadConfiguration(Reader reader) throws Exception{
configuration = new Dom4jConfiguration(reader);
loadConfiguration(configuration);
}
private static void loadConfiguration(Configuration configuration) throws ConfigurationException{
// load registered monitors
boolean firstMonitorElement = true;
Iterator registerMonitorElements = configuration.getChildren("register-monitor").iterator();
while(registerMonitorElements.hasNext()){
Configuration registerMonitorElement = (Configuration)registerMonitorElements.next();
MonitorDefinition monitorDef = new MonitorDefinition();
monitorDef.loadConfiguration(registerMonitorElement);
log.debug("Registering monitor " + monitorDef.getName());
registeredMonitors.add(monitorDef);
if(firstMonitorElement || monitorDef.isDefault()){
firstMonitorElement = false;
registeredMonitors.setSelectedItem(monitorDef);
}
}
// load registered actions
boolean firstActionElement = true;
Iterator registerActionElements = configuration.getChildren("register-action").iterator();
while(registerActionElements.hasNext()){
Configuration registerActionElement = (Configuration)registerActionElements.next();
ActionDefinition actionDef = new ActionDefinition();
actionDef.loadConfiguration(registerActionElement);
log.debug("Registering action " + actionDef.getName());
registeredActions.add(actionDef);
if(firstActionElement || actionDef.isDefault()){
firstActionElement = false;
registeredActions.setSelectedItem(actionDef);
}
}
}
public static final String DEFAULT_CONFIG = "jnm.xml";
public static final String DEFAULT_LOG_CONFIG = "log.properties";
private static Logger log;
private static boolean useGUI = true;
private static String config = DEFAULT_CONFIG;
private static String logConfig = DEFAULT_LOG_CONFIG;
private static MutableConfiguration configuration;
private static XArrayList registeredMonitors = new XArrayList();
private static XArrayList registeredActions = new XArrayList();
}
merci pour votre aide
4 réponses
-
Il faut ajouter les bibliothèques commons dans les propriétés de ton projet (dans le java build path).
-
les laibriries son présent dans le build path,et lorsque je recompile,le compilateur me dit que "Could not find the main class: com.anthonyeden.jnm.JNM. Program will exit." je pense que le problème est dans la classe JNM
-
On dirait plutôt qu'il manque le chemin vers tes sources (ton répertoire src) dans les propriétés du projet.
-
comment je peut ajouter ce chemin svp aidez moi et merci