【问题标题】:Java Classpath helpJava 类路径帮助
【发布时间】:2011-04-05 21:44:47
【问题描述】:

我正在使用 Java Media Framework 并编写了一个语音通信代码。我包含 jmf.jar 文件以运行我的语音聊天。在使用 Eclipse IDE 时,我可以运行代码并且它可以工作。我现在通过将项目导出到可执行 jar 来制作 jar 文件。当我使用 java -jar voice.jar 运行这个 jar 时,它不起作用。我说找不到设备。即使我在 IDE 中工作得很好。我在网上搜索,发现这可能是类路径的问题。 那么如何解决这个问题。 谢谢。

【问题讨论】:

  • 如果你使用 Launch4j Java 启动器,你应该把你所有的 jars 放在 XML 元素中。确保将所有 jar 文件组织在根应用程序文件夹(Launch4j 生成的文件的输出文件夹)下的一个文件夹中。例如,如果要在.\ 文件夹中生成voice.exe,则将所有jar 放入.\lib 文件夹并为voice.jar 添加Launch4j <cp>lib\voice.jar</cp> 条目,这是其中一个jar。如果您不喜欢特殊文件夹,只需将所有内容转储到根目录,但仍为每个 jar 正确放置 条目。

标签: java eclipse classpath executable-jar jmf


【解决方案1】:

这是因为您的代码没有检测到捕获设备

您必须将 jmf.properties 文件复制到与可执行 jar 相同的目录

您会在 jmf 安装的 lib 文件夹中找到 jmf.properties 文件。

对我来说是 C:\Program Files\JMF2.1.1e\lib\jmf.properties

【讨论】:

    【解决方案2】:

    试试

    java -classpath <locationofjar>/voice.jar;<locationofjar>/jmf.jar Program

    【讨论】:

    • 是的!即在windows中使用的classpath;如在 linux 中使用:
    • 对于这个命令,java.exe应该从你的.class文件所在的地方执行