从命令行编译.java文件 - 外部库,类路径

fal*_*ure 3 java compiler-construction command-line classpath libraries

我在Eclipse中创建了一个项目,现在我正在尝试确保从命令行编译.java文件.我一直在尝试javac *.java在包含所有.java文件的文件夹中进行编译.但是,这会导致由于从外部库Joda-time引用类而导致的错误.我有以下.classpath文件,Eclipse为该项目制作但不知道如何处理它.

    <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
    <classpathentry kind="lib" path="libs/joda-time-2.2.jar"/>
    <classpathentry kind="output" path="bin"/>
</classpath>
Run Code Online (Sandbox Code Playgroud)

我尝试编译javac -classpath *.java但这只会产生更多错误.我的源文件位于'src'文件夹内的包文件夹中.我在哪里放置我的classpath文件和我的joda-time-2.2.jar文件,以及如何编译所有内容?

[编辑]我正在使用Windows 7

Sto*_*ica 9

根据您的.classpath文件判断,这可能有效:

javac -d bin -cp libs/joda-time-2.2.jar src/your/package/*.java
Run Code Online (Sandbox Code Playgroud)

这假设您在项目的目录中运行它.

-d标志告诉javac输出文件的放置位置.该-cp标志是一个速记-classpath.我根据.classpath你问题中的文件得到了这些参数.

通常,您可以通过阅读和理解输出中的错误来确定需要什么javac.我打赌你cannot find symbol最初有很多错误,因为"符号"不在你的类路径上,所以javac不可能知道如何找到它们.

理解如何构建项目非常重要,它是程序员的基础知识和核心能力.

一旦你了解如何手动建立这样的,我建议寻找到构建工具,最好的Maven,或者蚂蚁,使在命令行上建设容易得多.大多数Java项目使用这些工具在命令行和自动构建系统中构建其产品,持续集成等.