Build Eclipse Java Project from Command Line

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

我正在尝试自动化构建(使用 FinalBuilder 而不是 ant) ,而且我既不是 Java 专家,也不是 Eclipse 专家。我也许可以通过直接使用 Java 命令行选项来解决这个问题,但是 Eclipse 项目感觉像是浪费了很多精力。

如果没有办法通过命令行编译 Eclipse 项目,是否有办法从 Eclipse 内部生成所需的 java 命令行?或者有一些文件,我可以查阅找到编译步骤,它正在做的幕后?


伙计们,我正在寻找一个答案,做 没有包括蚂蚁。让我重申最初的问题... ..。有没有从命令行构建 Eclipse 项目的方法?

我不认为这是一个不合理的问题,因为我可以做这样的视觉工作室:

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

通常的方法恰恰相反: 您基于 Mavenant创建构建,然后为您选择的 IDE 使用集成,这样您就可以独立于它,尤其是。当您试图让新的团队成员提高速度或使用有争议的集成服务器进行自动构建时,这一点非常重要。我建议使用美芬,让它为您做繁重的工作。创建一个 pom 文件,并通过 mvneclipse: eclipse 生成 eclipse 项目。高温

这个问题 包含了一些关于无头构建的有用链接,但它们大多面向构建插件。我不确定其中有多少可以应用于纯 Java 项目。

为了完成安德烈的回答,蚂蚁的解决方案可以像 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>

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

你可以找到一个 full ant script example here,这将是 在命令行 中调用与:

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

但是所有这些都和蚂蚁有关,这不是 Keith 想要的。

有关批处理编译,请参阅 Compiling Java code,特别是“ Using the batch compiler”部分

批处理编译器类位于 JDTCore 插件中。该类的名称是 org.eclipse.jdt.developer.batch。批处理编译器。它被打包到 plugins/org.eclipse.jdt.core _ 3.4.0中。.罐子。自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 编译选项在这一部分也有详细介绍。

The difference with the Visual Studio command line compilation feature is that Eclipse 似乎没有在命令行参数 中直接读取它的. project 和. classspath. You have to report all information contained in the .project and .classpath in various command-line options in order to achieve the very same compilation result.

所以,简短的回答是: “是的,Eclipse 是这样的。”;)

简短的回答,不。 Eclipse 没有像 VisualStudio 那样的命令行开关来生成项目。

嗨,这只是对 VonC 评论的补充。我使用 ECJ 编译器来编译我的项目。有些类没有被发现,这是一种抛出的预期。但是这个项目是用 javac 编译器构建的。

So just I added the classes into the classpath(which we have to pass as argument) and now its working fine... :)

Kulbir Singh

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

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

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

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

更新

几年前,Eclipse 用“ Equinox 发射器”取代了 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 启动器的版本号将取决于您拥有的 Eclipse 版本。

27年后,我也对在 IDE 中开发感到不舒服。我尝试了这些建议(以上)-可能只是没有遵循所有的权利-所以我做了一个网络搜索,并找到了什么工作对我在“ http://incise.org/android-development-on-the-command-line.html”。

答案似乎是以上所有答案的组合(如果我错了,请告诉我,如果错了,请接受我的道歉)。

如上所述,eclipse/adt 不创建必要的 ant 文件。为了在没有 Eclipse IDE (也没有创建 ant 脚本)的情况下进行编译:

1) Generate build.xml in your top level directory:

android list targets  (to get target id used below)


android update project --target target_id --name project_name  --path top_level_directory


** my sample project had a target_id of 1 and a project name of 't1', and
I am building from the top level directory of project
my command line looks like android update project --target 1 --name t1 --path `pwd`

2)接下来我编译了这个项目。我对不要使用“ ant”的要求感到有点困惑。 希望——请求者的意思是他不想编写任何 Ant 脚本 因为下一步是使用 ant 编译应用程序

 ant target


this confused me a little bit, because i thought they were talking about the
android device, but they're not.  It's the mode  (debug/release)
my command line looks like  ant debug

3)为了在设备上安装 apk,我不得不再次使用 ant:

 ant target install


** my command line looked like  ant debug install

4)为了在我的 Android 手机上运行这个项目,我使用 adb。

 adb shell 'am start -n your.project.name/.activity'


** Again there was some confusion as to what exactly I had to use for project
My command line looked like adb shell 'am start -n com.example.t1/.MainActivity'
I also found that if you type 'adb shell' you get put to a cli shell interface
where you can do just about anything from there.

3A)附注: 要从设备查看日志,请使用:

 adb logcat

3B)第二点注意: 上面提到的链接还包含了从命令构建整个项目的说明。

希望这能帮助我们回答这个问题。我知道我真的很高兴在这里找到关于这个主题的 什么都行

我只是想补充一下我的看法。我试着按照@Kieveli 对 non win32的建议去做(重复如下) ,但是对我不起作用(在 CentOS with Eclipse: Luna 上) :

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

在我使用 Eclipse (Luna)在 CentOS 上进行的特殊设置中,这样做是可行的:

$ECLIPSE_HOME/eclipse -nosplash -application org.eclipse.jdt.apt.core.aptBuild  startup.jar -data ~/workspace

输出应该是这样的:

Building workspace
Building '/RemoteSystemsTempFiles'
Building '/test'
Invoking 'Java Builder' on '/test'.
Cleaning output folder for test
Build done
Building workspace
Building '/RemoteSystemsTempFiles'
Building '/test'
Invoking 'Java Builder' on '/test'.
Preparing to build test
Cleaning output folder for test
Copying resources to the output folder
Analyzing sources
Compiling test/src/com/company/test/tool
Build done

不太清楚为什么它显然这样做了两次,但它似乎工作。

我只想在这个问题上加上这个注释,以便将来可能遇到这个问题的任何人使用。

有一次,我正在从事一个项目,从 CMD (使用 ECLIPSE)构建复杂且相互关联的 JAVA 项目是我唯一的选择。所以,你需要做的就是:

  • 下载所需的 ECLIPSE IDE (使用 ECLIPSE OXYGEN、用于 Enterprise Java 和 Web Developers 的 ECLIPSE IDE 以及用于 Java Developers 的 ECLIPSE IDE 对它进行了测试,它工作得很好)

  • 在 ECLIPSE 中打开项目,并根据项目更改 ECLIPSE 配置

  • 关闭 ECLIPSE 并保存。从 ECLIPSE 创建的元数据(如果将来要刷新工作区)

  • 在 CMD 中运行这个脚本:

"%ECLIPSE_IDE%\eclipsec.exe" -noSplash -data "YOUR_WORKSPACE" -application org.eclipse.jdt.apt.core.aptBuild

因此,我想说的是,如果没有。工作区中的元数据。确保它存在。如果你需要,复印一份。元数据,并在每次需要执行命令时复制粘贴它。