【问题标题】:Compiling java from the command line从命令行编译java
【发布时间】:2011-08-04 11:31:00
【问题描述】:

我正在尝试从命令行编译应用程序

该程序在 Eclipse 中编译并运行良好,但是当我转到命令行并使用 javac 编译我的 java 文件时,我得到 23 个错误,其中大部分是无法找到符号,箭头指向 .在包名中。

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

谢谢

【问题讨论】:

  • 看来。这些是类路径问题,IDE 为您管理它,您需要从终端进行管理
  • @rik:检查您的课程路径。你的类路径中是否包含所有需要的 jar 和包?
  • 另外我宁愿使用像ant或maven这样的构建工具来进行命令行编译。

标签: java command-line compiler-errors


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    编译依赖于 Log4j 的 Java 应用程序的命令行可能如下所示:

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

    如果您有多个类路径条目,您需要用分号分隔它们。

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

    这只是被称为“类路径地狱”的冰山一角。

    编辑:您还可以查看 Eclipse 功能“导出可运行 JAR”,它将您的应用程序及其所有依赖项打包到一个 JAR 文件中。

    【讨论】:

    • 同意,实际上您几乎肯定会在构建脚本的上下文中设置 CLASSPATH。当然,最终目标是使用 Maven 及其强大的依赖管理系统来缓解您所说的“类路径地狱”。
    猜你喜欢
    • 2013-12-26
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2013-09-25
    • 2023-03-29
    • 2011-01-27
    • 1970-01-01
    • 2016-07-05
    相关资源
    最近更新 更多