我一直在阅读有关Java中编译时和运行时之间差异的许多答案。但我还不清楚。一些答案说:编译时间是您(开发人员)正在编译程序或代码的时间段。我的问题是我什么时候编译我的程序或代码?例如:我打开我的IDE,eclipse或netbeans,在不同的类中编写代码,然后单击Run按钮,我的应用程序就会打开。有人可以解释我什么时候在这个示例过程中编译我的程序/代码?或者我何时处于此示例流程的编译时阶段?
答案 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.classjava -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中的透明编译步骤变得非常有用,因为它允许更新正在执行的代码而无需从头开始重新启动调试会话。)