我正在尝试将我的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;
^
我的假设是其他错误是由于无法达到导入而造成的。
我是否需要在原始命令中添加一些内容以包含这些导入?
答案 0 :(得分:1)
您缺少以下项目的罐子:
http://logging.apache.org/log4j/1.2/
您可以下载缺少的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可以更好地服务。