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