1
내 프로그램을 jar 파일 외부에서 실행할 수는 있지만 배포하고 jar 파일로 실행하려고합니다.항아리가 작동하지 않는 이유는 무엇입니까?
java -classpath .;./libs/mail.jar;./libs/jcommon-1.0.16.jar;./libs/jfreechart-1.0.13.jar;./libs/jxl.jar;./libs/ojdbc5.jar gdsreports/ReportsDriver
이 내 jar 파일을 패키징하는 방법이다 : 다음의 .class 파일을 실행하기위한
이 명령이 작동
jar -cfvm GDSReports.jar GDSReports.mf gdsreports/* util/* libs/*
내 매니페스트는 다음과 같습니다
Manifest-Version: 1.0
Main-Class: gdsreports.ReportsDriver
Created-By: Me
이것이 내가 항아리를 움직이는 방법입니다.
java -classpath .;./libs/mail.jar;./libs/jcommon-1.0.16.jar;./libs/jfreechart-1.0.13.jar;./libs/jxl.jar;./libs/ojdbc5.jar;./util;./gdsreports -jar GDSReports.jar
그러나 jar 파일을 실행하면 모든 라이브러리가로드되지 않습니다. 이것은 밖으로 뱉어 것입니다 : 이것은 예상 출력됩니다
Error loading configuration file: config/reportConfig
Error loading configuration file: config/gdsIds
Exception in thread "main" java.lang.NoClassDefFoundError: jxl/write/WriteException
at util.ReportConfig.setupReports(ReportConfig.java:197)
at util.ReportConfig.setup(ReportConfig.java:65)
at gdsreports.ReportsDriver.main(ReportsDriver.java:36)
Caused by: java.lang.ClassNotFoundException: jxl.write.WriteException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 3 more
:
Error loading configuration file: config/reportConfig
Error loading configuration file: config/gdsIds
-------------------------------------
Running TimingReport with parameters:
Filename: Reports/06-26-2012/TimingRptZL_06-26-2012.xls
Brand: ZL
Using production database: false
-------------------------------------
-------------------------------------
Exception in thread "main" java.lang.NullPointerException
at gdsreports.TimingReport.fillChartData(TimingReport.java:417)
at gdsreports.TimingReport.fillReport(TimingReport.java:238)
at gdsreports.TimingReport.run(TimingReport.java:131)
at gdsreports.ReportsDriver.main(ReportsDriver.java:40)
내가 무슨 일을하고 있는가?
그러면 잘못하고있는 것입니다. 시도에 대해 설명하는 몇 가지 세부 정보를 질문에 추가하십시오. –
Classpath 대신 Class-Path를 사용해야했습니다. 타이머가 만료되면 수락합니다. – Malfist