Java千百问_08JDK详解(009)_java程序如何运行

点击进入_更多_Java千百问

1、java程序如何运行

java代码首先需要进行编译,编译为.class类文件,然后通过java命令(执行器)去执行。java命令位于jdk/bin目录下。

了解如何编译看这里:javac是什么

它通过启动Java运行时环境(JRE),然后加载指定类(JRE在启动时会搜索以下路径进行类加载:引导类路径,扩展包路径,用户的类路径),调用类的main()方法(了解更多main方法看这里:main方法是什么)。

java命令可以执行一个jar,这个jar必须包含Main-Class文件,用来指定应用程序的入口。了解如何打jar包看这里:不使用IDE如何打jar包

java命令也可以用来启动一个JavaFX应用程序,同样通过main()方法或者javafx.application.Application。通过javafx.application.Application执行,首先执行器构造类的一个实例,然后调用它的init()方法,之后调用start(javafx.stage.Stage)方法。

javaw命令与java命令是相同的,除了一点:javaw没有相关联的控制台窗口。当你不希望一个出现一个命令提示符窗口时,请使用javaw。当然,如果javaw命令发生错误,则会讲所务信息通过一个对话框显示出来。

2、java命令如何使用

java命令可以再安装了jdk的操作系统中执行。了解如何安装jdk看这里:如何安装和配置Jdk

打开操作系统的命令终端,输入相应的命令行,就能够使用java,具体语法如下:

java [options] classname [args]

java [options] -jar filename [args]

javaw [options] classname [args]

javaw [options] -jar filename [args]

其中,参数可按任意次序排列。参数说明如下:

options

命令行选项,直接执行java或者java -help会显示所有options操作,主要有:

  1. -classpath

    类路径,设置用户类的路径,它会覆盖CLASSPATH环境变量中的用户类路径。若既未指定CLASSPATH又未指定-classpath,则用户类路径由当前目录构成。多个路径项用分号”;”进行分隔。

  2. -version

    输出产品版本并退出,一般用于测试jdk是否安装成功以及查看当前环境下使用的jdk版本。

  3. -version:<值>

    需要指定的版本才能运行。

  4. -verbose:[class|gc|jni]

    启用时详细日志输出。

  5. -D<名称>=<值>

    设置系统属性。

  6. 其他jvm配置

    可以在这里设置jvm运行参数,例如内存大小-Xms10M -Xmx10M等。

    了解jvm常见配置看这里:jvm常见配置都有哪些

  7. -esa | -enablesystemassertions

    启用系统断言

  8. -dsa | -disablesystemassertions

    禁用系统断言

classname

所要执行的类名,注意这里是指类名,不是文件名,所以不能加文件后缀名。例如:

java Test

filename

所要执行的jar文件名,这里是文件名,需要文件后缀名。例如:

java -jar Test.jar

args

调用main(String[] args)方法的入参(String类型),多个参数通过空格分割,没有参数不用填写。

例子如下:

public class TestMain {

    public static void main(String[] args) throws Exception {
        if (args.length > 0) {
            for (String arg : args) {
                System.out.println("args:" + arg);
            }
        }
        if (args.length <= 0) {
            throw new Exception("Exception");
        }
    }
}

首先编译:java Test.java

然后执行:java -Xms10M -Xmx10M Test 0 1 2

结果如下:

args:0

args:1

args:2

时间: 2025-01-06 21:56:33

Java千百问_08JDK详解(009)_java程序如何运行的相关文章

Java千百问_08JDK详解(017)_Javadoc是什么

点击进入_更多_Java千百问 1.Javadoc是什么 javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类.方法.成员等注释,形成一个和源代码配套的API帮助文档.也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以形成开发文档了. 了解注释看这里:注释是什么 2.如何使用Javadoc java为javadoc技术独立出了一个工具,它位于JAVA_HOME/bin/路径中,在终端中执行如下命令: javadoc 文件名.java java

Java千百问_08JDK详解(016)_AttachAPI是什么

点击进入_更多_Java千百问 1.AttachAPI是什么 Attach API是Sun公司提供的一套扩展API,它并不是Java的标准API.顾名思义,Attach,为JVM附加某些程序.简单来说,就是把一个程序连接到一个正在运行的JVM上,连接之后,这段程序就可以在JVM中运行.这段程序被称为JVMTI Agent程序. 我们使用它可以很方便地在运行过程中动态地设置加载代理类(JVMTI Agent),使我们能方便的监控一个JVM,运行一个外加的代理程序. 了解JVMTI Agent看这里

Java千百问_08JDK详解(013)_JVMTI是什么

点击进入_更多_Java千百问 1.JVMTI是什么 JVMTI(JVM Tool Interface)是JPDA体系中的最底层, 由Java虚拟机提供的native编程接口,是JVMPI(Java Virtual Machine Profiler Interface)和 JVMDI(Java Virtual Machine Debug Interface)的更新版本. 了解JPDA体系看这里:JPDA是什么 从它的发展中我们就可以知道,JVMTI提供了调试(debug)和分析(profiler

Java千百问_08JDK详解(011)_jnlp文件是什么

点击进入_更多_Java千百问 1.jnlp文件是什么 JNLP(Java Network Launching Protocol ,java网络执行协议文件)是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url链接打开一个java应用程序. Java桌面应用程序可以通过JNLP的方式发布.如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点.如果你使用JNLP打包一个应用程序,那么它

Java千百问_08JDK详解(010)_java、javaw、javaws有什么区别

点击进入_更多_Java千百问 1.java.javaw.javaws有什么区别 java.javaw.javaws这三个都是jdk自带的三个工具,都在jdk/bin路径下,这三个工具都是为了启动java应用存在的,具体区别如下: java java命令即java应用的执行器,通过它执行的应用日志会再控制台console显示输出与错误信息. 了解更多java命令看这里:java程序如何运行 javaw javaw与java一样,是java应用的执行器,不同的是它不会再控制台console显示输出

Java千百问_08JDK详解(003)_java核心框架是什么样的

点击进入_更多_Java千百问 1.jdk基础扩展类库都有什么 了解java核心框架看这里:java核心框架是什么样的 jdk基础类库分为两大部分,基础库.扩展基础库,提供了相当大量的功能,扩展基础库具体如下: I/O工具(I/O) java.io和java.nio包提供了一组非常丰富的api来管理应用程序的I/O(输入/输出).包括文件和设备I/O.对象序列化.缓冲区管理.字符集支持等.此外,API还为服务端提供了包括多路复用.非阻塞I/O.内存映射和文件锁等功能. 了解更多java.io和j

Java千百问_08JDK详解(018)_JConsole是什么

点击进入_更多_Java千百问 1.JConsole是什么 JConsole是一个Java程序性能分析器,可以从命令行或在终端中运行.可以用来监控Java程序的性能以及跟踪代码. 同时在com.sun.tools.jconsole包中提供了一组接口,允许访问JConsole,对线程.内存.类.对象进行分析和统计. 2.如何使用JConsole工具 我们这里主要介绍jconsole工具的用法,在JAVA_HOME/bin路径中,我们可以直接打开他.如下图: 我们可以对正在运行的本地进程或者远程进程

Java千百问_08JDK详解(019)_jdk工具包有哪些工具

点击进入_更多_Java千百问 jdk工具包有哪些工具 JDK工具包中提供了很多工具和实用的程序.涵盖了基本工具( javac, java, javadoc, apt, appletviewer, jar, jdb, javah, javap, extcheck),安全工具,国际化工具,RMI工具,IDL, RMI-IIOP工具,部署工具,java插件工具,java Web工具,监控管理工具,故障排查工具等. 这里我们只进行以下简单说明,不一一介绍,具体参见oracle官方文档:http://d

Java千百问_08JDK详解(012)_JPDA是什么

点击进入_更多_Java千百问 1.JPDA是什么 我们可以通过常见的Java IDE提供的图形界面调试工具进行代码调试,甚至可以使用JDK自带的jdb工具,以文本命令的形式来调试Java 程序,这些形形色色的调试工具都是通过JPDA开发的. JPDA(Java Platform Debugger Architecture)是 Java平台调试体系结构的缩写,通过JPDA提供的API,开发人员可以方便灵活的搭建Java调试工具. JPDA主要由三个部分组成:Java虚拟机工具接口(JVMTI,J