在编译时或运行时编程

时间:2014-03-08 17:00:13

标签: java compilation compile-time

我一直在阅读有关Java中编译时和运行时之间差异的许多答案。但我还不清楚。一些答案说:编译时间是您(开发人员)正在编译程序或代码的时间段。我的问题是我什么时候编译我的程序或代码?例如:我打开我的IDE,eclipse或netbeans,在不同的类中编写代码,然后单击Run按钮,我的应用程序就会打开。有人可以解释我什么时候在这个示例过程中编译我的程序/代码?或者我何时处于此示例流程的编译时阶段?

3 个答案:

答案 0 :(得分:1)

编写任何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内部完成

答案 1 :(得分:1)

这样做。打开记事本。输入:

  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   DIR

应该看到2个文件: Sampl.java和Sampl.class

那是你的字节码

现在您可以移动甚至删除Sampl.java,并且仍然可以使用

从命令行运行Sampl.class
  

java -cp。 SAMPL

所以你记事本和.java时间是编码时间。命令提示符是编译和运行时间

javac是java编译器

java.exe是加载和运行我们的类的运行时应用程序

[当运行jboss或其他应用程序容器时,我们使用jboss主类运行java,并且其calsses加载并运行我们的]

这些搜索结果也应该有用google java tutorial command propmpt

答案 2 :(得分:1)

有一件非常重要的事情你可能还没有完全理解,即你键入的文本 - 在这种情况下是一个Java程序 - 不是CPU每秒执行数百万的指令的形式 - Java是Java字节代码,需要存在以供JVM执行程序。

您编写的Java源代码转换为相应的Java字节代码,由所谓的Java编译器完成。编译器没有任何神奇之处,因为它只是一个可以读取文本并生成相应字节代码的程序,它是计算机科学专业学生编写一个标准作业(但通常用于比Java更小的语言)。

如果您在标准文本编辑器(而不是IDE)中编写程序并保存到磁盘,则需要通过在Java源上运行javac来手动调用Java编译器。 IDE的一个优点是它们通常会自动进行编译 - 无论是在保存文件时还是在运行程序时 - 都会让它变得更加神奇。

(注意:在Eclipse中进行调试时,IDE中的透明编译步骤变得非常有用,因为它允许更新正在执行的代码而无需从头开始重新启动调试会话。)