2011-08-04 85 views
0

我试图编译命令行从命令行

程序编译并在eclipse运行正常,howvever当我转到命令行应用程序,并使用javac编译我的java文件,我得到编译Java 23个错误,其中大部分是无法找到符号,箭头指向。以包名命名。

有没有人有什么我需要做不同的想法?

谢谢

+3

看来。这些是类路径问题,IDE为您管理它,从终端您需要这样做 –

+0

您是否设置了类路径? – amit

+0

@rik:检查你的班级路径。你有没有在你的课堂路径中包括所有需要的罐子和包装? –

回答

0

我建议不要将classpath设置为环境变量,因为它太侵入(您的所有java程序都会看到它)。

编译一个Java应用程序,它dependes上的Log4j可能看起来像这样的命令行:

javac -cp C:\dev\mvn\repo\log4j\log4j\1.2.16\log4j-1.2.16.jar AppenderTester.java 

如果你有你需要用分号分隔多个类路径条目。

为了便于使用,您可以创建一个启动脚本。这可以是一个简单的批处理脚本或更复杂的ant脚本(需要安装ant)。

这只是被称为'classpath hell'的冰山一角。编辑:您还可以看看Eclipse功能导出可运行JAR,它将您的应用程序及其所有依赖包一起打包到JAR文件中。

+0

同意,实际上你几乎可以肯定地在构建脚本的上下文中设置CLASSPATH。当然,最终目标是使用Maven及其良好的依赖管理系统来缓解您所指的'classpath地狱'。 –

4

您的类路径设置不正确。在.classpath文件中查看您的Eclipse项目。在那里你会发现很多classpathentry元素。您需要复制这个命令行编译。

要手动执行此操作,您必须首先将您的CLASSPATH环境变量设置为包含类定义的目录(或jar文件)的列表。

您也可以使用名为ant的构建工具为您自动执行此操作。