「javac关系」java与c的关系

博主:adminadmin 2023-01-25 12:42:07 306

本篇文章给大家谈谈javac关系,以及java与c的关系对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

问个弱弱的问题:jdk跟javac是什么关系啊?都是用来运行java的么

jdk是一切java应用程序的基础,所有的java应用程序是构建在这个之上的。它是一组API,也可以说是一些java Class。 要成为一个Java程序员,JDK是必不可少的最基本的工具。

javac是jdk在bin目录下的一个可执行文件,用来编译.java文件.

什么是JDK、JRE、JVM,以及他们之间的关系是什么

如果安装了JDK,会发同你的电脑有两套JRE,一套位于JDK安装目录\jre,另外一套位于C:\ProgramFiles\Java\jre1.5.0_02目录下。后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于C:\ProgramFiles\Java目录下的JRE。

如果你只安装JRE,而不是JDK,那么只会在C:\ProgramFiles\Java目录下安装唯一的一套JRE。JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。

所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的JavaPC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Java应用程序。

1、为什么Sun要让JDK安装两套相同的JRE?这是因为JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在JDK安装目录\lib\tools.jar里。

从下面例子可以看出,先将tools.jar改名为tools1.jar,然后运行javac.exe,显示如下结果:Exceptioninthread"main"java.lang.NoClassDefFoundError:com/sun/tools/javac/Main这个意思是说,你输入javac.exe与输入java-cpc:\jdk\lib\tools.jarcom.sun.tools.javac.Main是一样的,会得到相同的结果。

从这里我们可以证明javac.exe只是一个包装器(Wrapper),而制作的目的是为了让开发者免于输入太长的指命。而且可以发现JDK安装目录\lib目录下的程序都很小,不大于29K,从这里我们可以得出一个结论。就是JDK里的工具几乎是用Java所编写,所以也是Java应用程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于C:\ProgramFiles\Java目录下的那套JRE就是用来运行一般Java程序用的。

2、如果一台电脑安装两套以上的JRE,谁来决定呢?这个重大任务就落在java.exe身上。Java.exe的工作就是找到合适的JRE来运行Java程序。

Java.exe依照底下的顺序来查找JRE:自己的目录下有没有JRE;父目录有没有JRE;查询注册表:[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JavaRuntimeEnvironment]所以java.exe的运行结果与你的电脑里面哪个JRE被执行有很大的关系。

3、介绍JVMJRE目录下的Bin目录有两个目录:server与client。这就是真正的jvm.dll所在。jvm.dll无法单独工作,当jvm.dll启动后,会使用explicit的方法(就是使用Win32API之中的LoadLibrary()与GetProcAddress()来载入辅助用的动态链接库),而这些辅助用的动态链接库(.dll)都必须位于jvm.dll所在目录的父目录之中。因此想使用哪个JVM,只需要设置PATH,指向JRE所在目录底下的jvm.dll。

看了上面的介绍您应该了解了三者之间的关系:JDKJREJVM

java的虚拟机 编译器 解释器 都什么关系啊?

Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。

Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。

Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。

参考:

Javac编译器

Javac编译器读取Java源代码,并将其编译成字节代码,调用Javac的命令行示例如下:

C:javac options filename.java

值得注重的是,和Java解释器不同,Javac 编译器期望它正在编译的文件具有扩展名.java。其命令行如下表 选项 功能

-classpath path 此选项用于设定路径,在该路径上Javac寻找需被调用的类。该路径是一个用分号分开的目录列表。

-d Directory 此选项指定一个根目录。该目录用来创建反映软件包继续关系的目录数。

-g 此选项在代码产生器中打开调试表,以后可凭此调试产生字节代码。

-nowarn 此选项禁止编译器产生警告。

-o 此选项告诉javac优化由内联的static、final以及privite成员函数所产生的码。

-verbose 此选项告知Java显示出有关被编译的源文件和任何被调用类库的信息。

参考:

java jdk与编译器有什么关系

java *.class 是java运行

javac *.java是java编译

运行库jdk提供运行环境jvm ,jvm 只能运行 被javac编制之后的class文件。

JDK包含的基本组件包括:

javac – 编译器,将源程序转成字节码

jar – 打包工具,将相关的类文件打包成一个文件

javadoc – 文档生成器,从源码注释中提取文档

jdb – debugger,查错工具

java – 运行编译后的java程序(.class后缀的)

appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

Jconsole: Java进行系统调试和监控的工具

关于javac关系和java与c的关系的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。