【问题标题】:Netbeans 7.2.1 build issuesNetbeans 7.2.1 构建问题
【发布时间】:2013-02-08 10:51:37
【问题描述】:

我有以下问题:我制作了一个 Java 应用程序,它在 Netbeans 的运行时完全可以正常工作,但在构建后无法正常工作。这些库已正确包含,这是尝试从命令行运行它后发生的情况:

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)

任何帮助将不胜感激!

【问题讨论】:

  • 你运行java -jar "C:\Users\Wojtek\Documents\NetBeansProjects\VNC Streamer\dist\VNC_Streamer.jar" 吗?似乎缺少一个图书馆。您是否可能仅在运行选项卡中添加了一个库(在项目属性中),而不是编译选项卡?
  • 是的,这些错误来自命令行执行文件后。我还检查了属性,一切似乎都已到位。
  • 我会先删除 CLASSPATH 变量,因为这是一种旧做法,它可能会导致其他设置出现问题。

标签: java netbeans classpath


【解决方案1】:

在构建目录中驻留生成的 jar 和目录 lib。

所以类路径应该包含./lib。这可以在 META-INF/MANIFEST.MF 的主 jar 中设置为 Class-Path,因此您不需要从命令行添加它。 用 7zip 查看罐子。

当前运行必须从带有主 jar 和 lib 子目录的 (build) 目录进行。

顺便说一下,环境类路径不需要包含JRE的bin。

【讨论】:

  • 尝试在清单文件中设置类路径,仍然没有帮助。
猜你喜欢
  • 2016-08-14
  • 1970-01-01
  • 2016-05-14
  • 1970-01-01
  • 2013-10-16
  • 2013-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多