java编译器,java编译器eclipse

本文目录一览:

javac是什么?

javac是Java编译器,负责将Java源代码转换成字节码文件。

javac 可以隐式编译一些没有在命令行中提及的源文件。用 -verbose 选项可跟踪自动编译。当编译源文件时,编译器常常需要它还没有识别出的类型的有关信息。

javac的特点

javac具有简单性、面向对象、分布性、解释性、可靠、安全、平台无关、可移植性、高性能、多线程、动态性等特点。提供了异常处理机制,程序员可以把错误代码放在一起,这样可以简化错误处理任务,便于恢复。不支持指针,杜绝了内存的非法访问。

JAVA的编译器有哪些?

推荐Jcreator,它对于初学者是个很好的开发工具,又小运行也很快。它要用到JDK,大的IDE有JBuilder,netbean,sun stdio,eclipse。

编译器就是将”一种语言(通常为高级语言)”翻译为”另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。

对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。

Java进阶:SE6调用编译器的两种方法[2]

三 从内存中编译

JavaCompiler不仅可以编译硬盘上的Java文件 而且还可以编译内存中的Java代码 然后使用reflection来运行它们 我们可以编写一个JavaSourceFromString类 通过这个类可以输入Java源代码 一但建立这个对象 你可以向其中输入任意的Java代码 然后编译和运行 而且无需向硬盘上写 class文件

import java lang reflect *;import java io *;import javax tools *;import javax tools JavaCompiler CompilationTask;import java util *;import java net *;public class test_pilerapi{   private static void pilerJava() throws Exception   {    JavaCompiler piler = ToolProvider getSystemJavaCompiler();    DiagnosticCollector diagnostics = new DiagnosticCollector();    // 定义一个StringWriter类 用于写Java程序    StringWriter writer = new StringWriter();    PrintWriter out = new PrintWriter(writer);    // 开始写Java程序    out println( public class HelloWorld { );    out println( public static void main(String args[]) { );    out println( System out println(\ Hello World\ ); );    out println( } );    out println( } );    out close();    //为这段代码取个名子 HelloWorld 以便以后使用reflection调用    JavaFileObject file = new JavaSourceFromString( HelloWorld writer toString());    Iterable pilationUnits = Arrays asList(file);    JavaCompiler CompilationTask task = piler getTask(null null     diagnostics null null pilationUnits);    boolean success = task call();    System out println( Success: + success);    // 如果成功 通过reflection执行这段Java程序    if (success)    {     System out println( 输出 );     Class forName( HelloWorld ) getDeclaredMethod( main new Class[]     { String[] class }) invoke(null new Object[]      { null });       System out println( 输出 );      }     }     public static void main(String args[]) throws Exception     {      pilerJava();     }    }    // 用于传递源程序的JavaSourceFromString类    class JavaSourceFromString extends SimpleJavaFileObject    {     final String code;   JavaSourceFromString(String name String code)   {    super(URI create( string:/// + name replace( / )+ Kind SOURCE extension) Kind SOURCE);    this code = code;     }     @Override     public CharSequence getCharContent(boolean ignoreEncodingErrors)    {     return code;  } }

lishixinzhi/Article/program/Java/hx/201311/27240

初学java 用什么编译器?

一 eclipse / myeclipse

当年学习java,最先接触到的就是 eclipse。喔了个噻,当时感觉eclipse好牛啊,有好多先进的功能:

1. 可以方便地进行包管理。可视化窗口,创建目录和文件都很方便,移动包,复制包等都可以方便的进行。

2.热键操作。复制保存啥的就不说了,代码提示这个功能还是很不错的,在写着写着,脑子突然短路的时候,可以通过快捷键把脑子快速带回来。

3.代码调试。有时候,写着写着代码,突然间就报错了,不知道哪里错了,咋整,这时候,如果使用编辑器的话,就可以使用 debug模式进行调试了,找出问题所在,解决问题。

4.一些代码管理等插件。在企业中肯定要用到代码同步工具,svn 或者 git , 在编辑器中会提供这样的插件,方便代码的管理。

二 idea

相比 eclipse 和 myeclipse ,idea 的基本功能差不多。

1. 包管理:也是有方便的包和资源管理。

2.热键:也是提供热键管理的,而且还很好用。

3.代码调试:debug模式用起来也是很舒服。

4.插件方面:也是支持一些插件的,如 热部署插件等。

三 比较

1. 操作:两个软件有不同的快捷键,虽然idea兼容部分eclipse快捷键,但是不建议这样做。

2.资源消耗:idea更能吃内存啊呦喂,电脑配置低的伤不起啊。eclipse要更柔和一点。

3.是否免费:eclipse 是免费的,myeclipse和idea 是要付费的呦。但是嘛,你懂得。

4.专业性:idea 应该是更专业的,有更高的代码更新机制和代码提示功能。但是 eclipse 涉及的范围更广,除了java 和可以编辑其他语言的项目。

四 建议

1. 如果电脑配置比较低,建议使用 eclipse ,并且使用较低版本的,这样,电脑不会太吃力。如果配置比较高,比如,16G内存,固态硬盘,那就使用idea吧。

2. 没有最好的编辑器,只有最适合自己的编辑器。任何一个编辑器用习惯了,都是很不错的。

希望对您有所帮助!~

Java用什么编译器?

常用的就是Eclipse,My Eclipse,idea这三种,My Eclipse相对于其他两种不是很常用

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/219672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-09 11:00
下一篇 2024-12-09 11:00

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 8 Group By 会影响排序吗?

    是的,Java 8中的Group By会对排序产生影响。本文将从多个方面探讨Group By对排序的影响。 一、Group By的概述 Group By是SQL中的一种常见操作,它…

    编程 2025-04-29

发表回复

登录后才能评论