[英]Programming at compile time or at runtime
我一直在阅读关于Java中编译时和运行时之间的不同的许多答案。 但我还不清楚。 一些答案说:编译时间是您(开发人员)正在编译程序或代码的时间段。 我的问题是我什么时候编译我的程序或代码? 例如:我打开我的IDE,eclipse或netbeans,在不同的类中编写代码,然后单击Run按钮,我的应用程序就会打开。 有人可以解释我什么时候在这个示例过程中编译我的程序/代码? 或者我在这个示例过程中何时处于编译时阶段?
当你编写任何java类时,文件的扩展名必须是.java 。 让我们用简单的java类来打印Hello World:
public class Simple {
public static void main(String[] args) {
System.out.println("Hello World !!");
}
}
所以将此文件保存为Simple.java 。
现在打开cmd,让我们说保存在d:\\ test目录下的文件
d:\\ test> javac Simple.java //运行此命令时,.java将转换为字节代码,并保存在.class
文件中。
d:\\ test> java Simple // JVM将执行字节码文件,即Simple.class
Note
:所有这些过程都由IDE在内部完成
做这个。 打开记事本。 输入 :
class Sampl{
public static void main(String []args){
System.out.println("hi from run time");
}
}
将其另存为Sampl.java
将它保存在一个没有空格的新文件夹中 - 例如c:\\ j \\ academic或〜/ j / academic(如果在linux上)
现在打开一个命令promot,找出JDK的路径并输入
cd c:\\ j \\ academic dir
应该只看到Sampl.java
javac Sampl.java目录
应该看到2个文件:Sampl.java和Sampl.class
那是你的字节码
现在您可以移动甚至删除Sampl.java,并且仍然可以使用命令行运行Sampl.class
java -cp。 SAMPL
所以你记事本和.java时间是编码时间。 命令提示符是编译和运行时
javac是java编译器
java.exe是加载和运行我们的类的运行时应用程序
[当运行jboss或其他应用程序容器时,我们使用jboss主类运行java,并且其calsses加载并运行我们的]
这些搜索结果应该有助于谷歌java教程命令提示
有一个非常重要的事情你可能还没有完全理解,即你键入的文本 - 在这种情况下是一个Java程序 - 不是CPU每秒执行数百万的指令的形式 - 这对于Java是Java字节代码,需要存在以供JVM执行您的程序。
您编写的Java源代码转换为相应的Java字节代码,由所谓的Java编译器完成。 编译器没有任何神奇之处,因为它只是一个可以读取文本并生成相应字节代码的程序,它是计算机科学专业学生编写一个(但通常用于比Java更小的语言)的标准作业。
如果您在标准文本编辑器(而不是IDE)中编写程序并保存到磁盘,则需要通过在Java源上运行javac
来手动调用Java编译器。 IDE的一个优点是它们通常会自动进行编译 - 无论是在保存文件时还是在运行程序时 - 都会让它变得更加神奇。
(注意:在Eclipse中进行调试时,IDE中的透明编译步骤变得非常有用,因为它允许更新正在执行的代码而无需从头开始重新启动调试会话。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.