2013-02-08 147 views
0

我有以下問題:我做了一個Java應用程序,它在Netbeans運行時完全正常工作,但在構建後無法工作。該庫已經適當地包括,這裏是試圖從命令行運行它之後會發生什麼:Netbeans 7.2.1構建問題

Exception in thread "Thread-4" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 
    at com.xuggle.ferry.JNIMemoryManager.<init>(JNIMemoryManager.java:861) 
    at com.xuggle.ferry.JNIMemoryManager.<clinit>(JNIMemoryManager.java:860) 

    at com.xuggle.mediatool.MediaWriter.<clinit>(MediaWriter.java:119) 
    at com.xuggle.mediatool.ToolFactory.makeWriter(ToolFactory.java:149) 
    at app.RepaintImpl$1.run(RepaintImpl.java:63) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory 
    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:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    ... 6 more 

在NB一切都被設置爲JDK 7,我相信我的環境變量也沒關係:

CLASSPATH=C:\Program Files\Java\jre7\lib\*;C:\Program Files\Java\jre7\bin\*; 
JAVA_HOME=C:\Program Files\Java\jdk1.7.0_09 
PATH=C:\Program Files\Java\jdk1.7.0_09\bin;... 

這裏的生成日誌,讓我困擾的是,在Netbeans的.jar文件創建空目錄的事實:

ant -f "C:\\Users\\Wojtek\\Documents\\NetBeansProjects\\VNC Streamer" clean jar 
init: 
deps-clean: 
Updating property file: C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\build\built-clean.properties 
Deleting directory C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\build 
clean: 
init: 
deps-jar: 
Created dir: C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\build 
Updating property file: C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\build\built-jar.properties 
Created dir: C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\build\classes 
Created dir: C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\build\empty 
Created dir: C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\build\generated-sources\ap-source-output 
Compiling 87 source files to C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\build\classes 
Note: C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\src\app\RepaintImpl.java uses or overrides a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
Note: Some input files use unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 
Copying 1 file to C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\build\classes 
Copied 25 empty directories to 24 empty directories under C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\build\classes 
compile: 
Created dir: C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\dist 
Copying 1 file to C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\build 
Copy libraries to C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\dist\lib. 
Building jar: C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\dist\VNC_Streamer.jar 
To run this application from the command line without Ant, try: 
java -jar "C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\dist\VNC_Streamer.jar" 
jar: 
BUILD SUCCESSFUL (total time: 7 seconds) 

任何幫助將不勝感激!

+0

你運行'java -jar「C:\ Users \ Wojtek \ Documents \ NetBeansProjects \ VNC Streamer \ dist \ VNC_Streamer.jar」'?這似乎是一個圖書館失蹤。你可能只在運行選項卡中添加一個庫(在項目屬性中),但不是編譯選項卡? – assylias

+0

是的,這些錯誤來自命令行後執行該文件。此外,我檢查了屬性,一切似乎都已到位。 – user1937873

+0

我會首先刪除'CLASSPATH'變量,因爲這是一個古老的做法,它可能會導致其他設置的問題。 – madth3

回答

1

在構建目錄中駐留生成的jar和目錄lib。

所以班級路徑應該包含./lib。這可以在META-INF/MANIFEST.MF的主jar中設置爲Class-Path,所以你不需要從命令行添加它。 用7zip進入罐子。

當前運行必須從具有主jar和lib子目錄的(build)目錄中發生。

順便說一下,不需要環境類路徑來包含JRE的bin。

+0

嘗試在清單文件中設置類路徑仍然沒有幫助。 – user1937873