繁体   English   中英

在编译时或运行时编程

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM