编译java时找不到包

时间:2012-09-21 16:14:07

标签: java

我正在尝试将我的java文件编译为class。 它是一个更大程序的插件,从源代码运行时它可以从eclipse运行良好。

我在Linux工作,在shell中输入以下javac MyPlugin.java

这只是一些输出:

MyPlugin.java:11: package javolution.util does not exist
import javolution.util.FastList;
                      ^
MyPlugin.java:12: package javolution.util does not exist
import javolution.util.FastMap;
                      ^
MyPlugin.java:14: package org.apache.log4j does not exist
import org.apache.log4j.Logger;
                       ^
MyPlugin.java:15: package org.jwebsocket.api does not exist
import org.jwebsocket.api.PluginConfiguration;
                         ^

我的假设是其他错误是由于无法达到导入而造成的。

我是否需要在原始命令中添加一些内容以包含这些导入?

3 个答案:

答案 0 :(得分:1)

您缺少以下项目的罐子:

http://javolution.org/

http://logging.apache.org/log4j/1.2/

http://jwebsocket.org/

您可以下载缺少的JAR并将它们包含在编译类路径中。

或者,您可以让maven管理应用程序的下载和编译。

更新:在一个位置收集所有外部广告

要在一个地方获取所有外部库,您可以使用以下方法在eclipse中创建可运行的JAR:

Export...->Java->Runnable JAR File

输入your_temp_jar.jar,然后点击

Copy required libraries into a sub-folder next to the generated JAR

点击Finish后,所有必需的广告将位于名为your_temp_jar_lib的文件夹中。

答案 1 :(得分:0)

您应该在类路径中指定包含以下类的jar文件。

javolution.util.FastList
javolution.util.FastMap
org.apache.log4j.Logger
org.jwebsocket.api.PluginConfiguration

您可以使用-cp指定jar的类路径。

答案 2 :(得分:0)

在命令行中键入javac不是构建Java代码的可行或可扩展方式。虽然你可以使用-cp到javac来为这个编译添加所需的依赖项,但是通过学习ant或maven可以更好地服务。