从命令行构建 Eclipse Java 项目

2022-08-31 08:45:23

有没有办法从命令行编译基于 Eclipse 的 Java 项目?

我正在尝试自动化我的构建(使用FinalBuilder而不是ant),我既不是Java也不是Eclipse专家。我大概可以弄清楚如何使用直接的java命令行选项来做到这一点,但是Eclipse项目感觉像是浪费了很多精力。

如果无法通过命令行编译 Eclipse 项目,有没有办法从 Eclipse 中生成所需的 java 命令行?或者有没有一些文件我可以四处寻找它在幕后执行的编译步骤?


伙计们,我正在寻找一个不包括蚂蚁的答案。让我重新重复一下原来的问题.有没有办法从命令行构建 Eclipse 项目?

我不认为这是一个不合理的问题,因为我可以为Visual Studio做这样的事情:

devenv.exe /build "Debug|Any CPU" "C:\Projects\MyProject\source\MyProject.sln"

答案 1

您可以从命令行通过工作区构建 eclipse 项目:

eclipsec.exe -noSplash -data "D:\Source\MyProject\workspace" -application org.eclipse.jdt.apt.core.aptBuild

它使用插件自动构建您的工作区。这也被称为“无头构建”。该死的很难弄清楚。如果您没有使用win32 exe,可以尝试以下操作:jdt apt

java -cp startup.jar -noSplash -data "D:\Source\MyProject\workspace" -application org.eclipse.jdt.apt.core.aptBuild

更新

几年前,日食被“春分点发射器”所取代startup.jar

https://wiki.eclipse.org/Equinox_Launcher

在Eclipse Mars (MacOX) 上:

java -jar /Applications/Eclipse.app/Contents/Eclipse/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -noSplash -data "workspace" -application org.eclipse.jdt.apt.core.aptBuild

该参数指定工作区的位置。-data

Equinox启动器的版本号将取决于您拥有的日食版本。


答案 2

为了完成 André 的答案,ant 解决方案可以像 Emacs、JDEE、Ant 和 Eclipse Java 编译器中描述的那样,如下所示:

      <javac
          srcdir="${src}"
          destdir="${build.dir}/classes"> 
        <compilerarg 
           compiler="org.eclipse.jdt.core.JDTCompilerAdapter" 
           line="-warn:+unused -Xemacs"/>
        <classpath refid="compile.classpath" />
      </javac>

compilerarg 元素还允许您将其他命令行参数传递给 eclipse 编译器。

您可以在此处找到一个完整的 ant 脚本示例,该示例将在命令行中调用:

java -cp C:/eclipse-SDK-3.4-win32/eclipse/plugins/org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar org.eclipse.core.launcher.Main -data "C:\Documents and Settings\Administrator\workspace" -application org.eclipse.ant.core.antRunner -buildfile build.xml -verbose

但这一切都涉及蚂蚁,这不是基思所追求的。

对于批处理编译,请参阅编译 Java 代码,尤其是“使用批处理编译器”部分"

批处理编译器类位于 JDT 核心插件中。该类的名称是 org.eclipse.jdt.compiler.batch.BatchCompiler。它被打包到插件/org.eclipse.jdt.core_3.4.0..jar中。从3.2开始,它也可以作为单独的下载提供。该文件的名称是 ecj.jar。
从3.3开始,这个jar还包含对jsr199(编译器API)的支持和对jsr269(注释处理)的支持。为了使用注释处理支持,需要 1.6 版本的 VM。

从命令行运行批处理编译器将给出

java -jar org.eclipse.jdt.core_3.4.0<qualifier>.jar -classpath rt.jar A.java

艺术

java -jar ecj.jar -classpath rt.jar A.java

该部分还详细介绍了所有java编译选项。

与Visual Studio命令行编译功能的不同之处在于,Eclipse似乎没有在命令行参数中直接读取其.project和.classpath。您必须在各种命令行选项中报告 .project 和 .classpath 中包含的所有信息,才能获得完全相同的编译结果。

所以,简短的回答是:“是的,Eclipse有点像。”;)


推荐