0
남자. 내가 자바 런타임에 대한 질문이 erorr : 나는 centos에서 JasperReport 예제 코드를 컴파일하려고합니다.자바 런타임 오류 NoClassDefFoundError
내 셋업 :
/opt/jasperreports-5.6.0
/opt/apache-ant-1.9.4
/opt/commons-logging-1.1.3/commons-logging-1.1.3.jar
오류 : 나는 전역 클래스 경로를 // 메이크
JAVAC := javac
JAVA := java
JAVA_COMPILE_LIBS = "/opt/jasperreports-5.6.0/dist/jasperreports-5.6.0.jar:."
JAVA_RUNTIME_LIBS = "/opt/commons-logging-1.1.3/commons.logging-1.1.3.jar:${JAVA_COMPILE_LIBS}"
TARGET := JasperReportCompile
.PHONY: clean all run
all: ${TARGET}
${TARGET}: ${TARGET}.java
%:%.java
${JAVAC} -cp ${JAVA_COMPILE_LIBS} $<
run: ${TARGET}
$(JAVA) -cp ${JAVA_RUNTIME_LIBS} $<
clean:
rm -rf *.class
// JasperReportCompile.java
를 설정하지 않았다~/test/1 localhost $ make run
javac -cp "/opt/jasperreports-5.6.0/dist/jasperreports-5.6.0.jar:." JasperReportCompile.java
java -cp "/opt/commons-logging-1.1.3/commons-logging-1.1.3.jar:"/opt/jasperreports-5.6.0/dist /jasperreports-5.6.0.jar:."" JasperReportCompile
Compiling Report Design ...
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at net.sf.jasperreports.engine.util.JRLoader.<clinit>(JRLoader.java:81)
at net.sf.jasperreports.engine.JRPropertiesUtil.loadProperties(JRPropertiesUtil.java:99)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.initProperties(DefaultJasperReportsContext.java:94)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.<init>(DefaultJasperReportsContext.java:71)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.<clinit>(DefaultJasperReportsContext.java:59)
at net.sf.jasperreports.engine.JasperCompileManager.getDefaultInstance(JasperCompileManager.java:197)
at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:539)
at JasperReportCompile.main(JasperReportCompile.java:16)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 8 more
make: *** [run] Error 1
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
public class JasperReportCompile {
public static void main(String[] args) {
String sourceFileName = "~/test/1/a.xml";
System.out.println("Compiling Report Design ...");
try {
JasperCompileManager.compileReportToFile(sourceFileName);
} catch (JRException e) {
e.printStackTrace();
}
System.out.println("Done compiling!!! ...");
}
}
왜 클래스 경로에 아파치 공유 항아리를 추가 한 후에도 여전히이 오류가 발생하는지 알 수 없습니다. 누군가 나를 도울 수 있기를 바랍니다. 고마워.
변경 후에도 여전히 동일한 문제가 발생합니다. – lhe
클래스 경로에서 따옴표를 제거하십시오. Thay가 틀린 위치에 있습니다. – Jens