哪些编程工具是用Java写的?

更新时间: 2024-07-15 11:49:26来源: 粤嵌教育浏览量:1055

Java是最流行的编程语言之一。Java平台被用来实现现代IT系统中使用的各种工具和组件。我们来讨论几个最受欢迎的。

 

编程IDE

IntelliJ IDEAEclipseNetBeans——最流行的Java编程IDE大多是用Java语言编写的,这并不奇怪。由于Java虚拟机(JVM),它们不需要100%JavaJetBrainsKotlin上投入了大量资金,因此它的IDE利用了Kotlin,并且是用两种语言编写的。在大多数情况下,IDE是桌面应用程序,因此它们受益于Java运行时环境可以在各种平台上运行的事实——WindowsLinuxMacOS。现代解决方案相当复杂,它们提供与各种框架和库的集成,使编程更容易。如今,它们甚至可以与类似AI的助手集成。

截至目前,所有IDE都在努力提供Java 21功能支持,但尚未完成。

 

Jenkins

Jenkins是最著名的开源持续集成工具之一。最初以Hudson的名字发布,后来因为与Oracle的冲突而分叉。Jenkins是用Java编写的,但是也可以用来构建用其他语言编写的项目。它是相当模块化的,并且由于插件,可以与GoRubyPython和其他类型的项目一起工作。

2018年,Jenkins X发布,将Jenkins的功能扩展到Kubernetes平台。它可以在上面运行,也可以构建应用程序并将其部署到k8s中。Jenkins X是围绕GitOps构建的,支持各种秘密管理器。更重要的是,它可以用于MLops

 

Apache Tomcat

有很多用Java编写的web服务器,但其中最著名的可能是Apache Tomcat。当前版本(10!)实现了Jakarta EE 10平台规范的部分内容。很难相信,但它从1999年就已经上市了。

有趣的是,Apache TomEE基于Tomcat,但添加了其他组件,使其完全通过了Jakarta EE 9.1 Web Profile认证(以前是Java EE)。Tomcat也被各种流行的Java框架所利用,如Spring Boot

 

GraalVM

如果我们采用JDK并用Java而不是C重新实现它呢?这就是GraalVM。它包括JIT(实时)编译器,也包括本机映像技术。本机映像旨在通过提前(AOT)JVM应用程序编译成二进制文件来改善其执行。得益于此,它们启动更快,不需要JVM相关的预热,并且使用更少的资源。然而,也有一些缺点——并非所有的特性都可用(例如,java代理)JIT(实时)编译器通常比AOT更好(因为它可以处理运行时数据而不是编译时),并且一些库不工作。

 

SonarQube

SonarQube对詹金斯来说是个不错的补充。他们很好地融合在一起。Sonar是一个用于静态代码分析和各种代码质量相关指标的工具。它是一个独立的应用程序,但可以与各种构建和CI解决方案集成。它是用Java编写的,但是它也支持许多其他非jvm编程语言。

 

KeyCloak

知道Auth0Firebase认证AWS Cognito等解决方案吗?KeyCloak是一个开源的身份和访问管理系统,可以在内部部署。如果需要将Auth的项目集成,但无法选择任何托管解决方案,那么它可能适合KeyCloak支持社交登录、2FA和其他最重要的安全相关功能。

 

ElasticLogstash堆栈(不含Kibana

人们很容易认为Elastic 堆栈(以前的ELK Stack)是一组Java编程工具。该堆栈包含3个主要工具

l Elastic搜索-搜索引擎

Logstash-摄入管道

Kibana-可视化工具

它们共同构成了一个解决方案,例如,你可以从应用程序中收集日志,对其进行索引,在其中进行搜索,并将结果可视化。但是,Kibana是用JavaScriptTypeScript编写的,但其余部分都利用了JavaElasticsearch依赖于Apache Lucene,后者也基于Java

 

Apache Cassandra

Apache Cassandra是一个开源的NoSQL数据库。它具有高度可伸缩性(可以在数十万个节点上存储数Pb的数据),并且没有单点故障(SPOF)。它基于Java代码。由于特定的数据模型及其有限的查询能力,它不是最容易使用的数据库,当然也不适合所有的项目。

 

Neo4j

Neo4j也是一个开源的NoSQL数据库。但是,和卡珊德拉完全不一样。这是一个图形数据库,我们可以在其中存储节点、边及其属性。如果你想对社交网络中的朋友关系进行建模,并查询这些关系,那么Neo4j可能是一个不错的选择。如何查询这样的结构?Neo4j使用Cypher查询语言。

 

Apache Kafka

从数据库开始,让我们来看看消息代理。Apache Kafka近年来蓬勃发展。Kafka用于数据流和处理,也用于微服务通信。Kafka的核心是用Scala编写的,但现在,其他一些部分是用Java实现的。除了Kafka可能对相关项目感兴趣,如Kafka StreamsKafka ConnectSchema Registry

 

Apache ActiveMQ

ActiveMQ是一个比Kafka更古老的项目,它已经存在了近20年,但仍在积极开发中。它支持Java消息服务(JMS)规范,支持多种协议(如AMQPSTOMPMQTT等)和集群模式。目前有两种类型的ActiveMQ版本,经典版本和名为Artemis下一代版本。有趣的是,Artemis是基于红帽捐赠的HornetQ项目。ActiveMQ的下一个主要版本将基于此版本。

 

结论

Java编程语言在许多应用程序和工具中使用。它在日常工作中帮助Java开发人员,但是基于它的产品可以用来部署web应用程序、存储数据或在系统之间交换消息。几年过去了,但是市场上的Java情况是稳定的,工具是成熟的,并且仍然在积极地工作。如果你正在考虑开始一个新项目,Java可能是一个不错的选择。

免费预约试听课