java - 从C++到Java-什么是Gradle

标签 java c++ gradle intellij-idea

我用C++,Python ..编码了几年,但是现在我想学习Java。因此,我学习了基础知识,但对Java编译器有些困惑。
那么Gradle的目的是什么?正确,它正在将我的Java文件编译为字节码形式的.class文件,可以在运行代码时直接解释它们或将其转换为机器代码。

但是,为什么我应该使用Gradle?它是像Pycharm中的Venv这样的虚拟环境吗?

在Intellij中,我可以在创建新项目时在Java项目或Gradle项目之间进行选择。因此,我有点困惑Java项目的工作方式。哪个Java编译器用于通用Java项目?

简而言之,我想知道什么时候应该使用Gradle或什么时候应该使用Standard Java Project,以及与Gradle相比,Standard Java Project Java Compiler的工作方式。

在我看来,这就像是C编译器中G++和CMake之间的比较。对于基本理解而言,这是否是正确的假设?

感谢您对Java编程新手的帮助;-)

最佳答案

在C++中,您可以随意使用命令行编译器(g++或cl),然后运行编译后的应用程序。在Java中,您可以执行相同操作(使用javac编译类,并使用java运行已编译的程序)。但是,随着项目的增长,随着您导入更多的依赖项和库,管理所有编译详细信息可能成为一项挑战。因此,您将使用诸如CMake之类的构建管理系统。即使它为您设置了某些功能,CMake仍会使用您在后台使用的任何C++编译器。

与C++和Cmake一样,Java为复杂的构建管理提供了很多选择,并且遵循相同的哲学。 Gradle是一个管理系统。 Maven是另一个流行的选择。这些系统与CMake之间的主要区别在于,与CMake不同,在CMake中,您通常自己下载,配置和安装依赖项,Gradle和Maven会为您完成。他们仍然在后台使用Java编译器,但可以为您自动执行许多任务。如果您在没有Gradle或Maven的情况下创建Java项目,则必须在某种程度上自己下载,安装和配置依赖项-IntelliJ确实会照顾到某些方面。

关于java - 从C++到Java-什么是Gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61269069/

相关文章:

java - 无论程序是从 jar 还是从 IDE 运行,如何将文件写入正确的目录?

java - 如何在我的 Android 应用中实现 7 天免费试用期的年度订阅状态为 'account hold'?

java - spring data Rest如何将文档的版本和id发送到REST API客户端?

android - 特定的 applicationIdSuffix 阻止应用程序启动

java - 类数组列表

c++ - 如何更新具有兼容性的 C/C++ 结构

c++ - if else if,代码只解析到else条件

c++ - GCC 4.6.3 - 模板特化受优化级别影响?

maven - 通过代理的依赖处理程序(Maven,Gradle,Ivy)的URL

kotlin 代码的 gradle 构建