`
lcf11824
  • 浏览: 88329 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

java命令行

阅读更多

 

1.关于-classpath,-cp

虚拟机在运行一个类时,需要将其装入内存,虚拟机搜索类的方式和顺序如下:
Bootstrap classes --> Extension classes --> User classes
Bootstrap 中的路径是虚拟机自带的jar或zip文件,虚拟机首先搜索这些包文件,用System.getProperty("sun.boot.class.path")可得到虚拟机搜索的包名。
Extension是位于jre"lib"ext目录下的jar文件,虚拟机在搜索完Bootstrap后就搜索该目录下的jar文件。用System. getProperty("java.ext.dirs”)可得到虚拟机使用Extension搜索路径。
User classes搜索顺序为当前目录、环境变量 CLASSPATH、-classpath。

 

2. -classpath的使用

告知虚拟机搜索目录名、jar文档名、zip文档名,之间用分号;分隔。
例如当你自己开发了公共类并包装成一个common.jar包,在使用 common.jar中的类时,就需要用-classpath common.jar 告诉虚拟机从common.jar中查找该类,否则虚拟机就会抛出java.lang.NoClassDefFoundError异常,表明未找到类定义。 
在运行时可用System.getProperty(“java.class.path”)得到虚拟机查找类的路径。

使用-classpath后虚拟机将不再使用CLASSPATH中的类搜索路径,如果-classpath和CLASSPATH都没有设置,则虚拟机使用当前路径(.)作为类搜索路径。
推荐使用-classpath来定义虚拟机要搜索的类路径,而不要使用环境变量 CLASSPATH的搜索路径,以减少多个项目同时使用CLASSPATH时存在的潜在冲突。例如应用1要使用a1.0.jar中的类G,应用2要使用 a2.0.jar中的类G,a2.0.jar是a1.0.jar的升级包,当a1.0.jar,a2.0.jar都在CLASSPATH中,虚拟机搜索到第一个包中的类G时就停止搜索,如果应用1应用2的虚拟机都从CLASSPATH中搜索,就会有一个应用得不到正确版本的类G

 

3.运行class文件 

执行带main方法的class文件,命令行为:
java <CLASS文件名>
注意:CLASS文件名不要带文件后缀.class
例如:
java Test
如果执行的class文件是带包的,即在类文件中使用了:
package <包名>
那应该在包的基路径下执行,命令行为:
java <包名>.CLASS文件名
例如:
PackageTest.java中,其包名为:com.ee2ee.test,对应的语句为:
package com.ee2ee.test;
PackageTest.java及编译后的class文件PackageTest.class的存放目录如下:
classes
  |__com
      |__ee2ee
           |__test
                |__PackageTest.java
                |__PackageTest.class

要运行PackageTest.class,
应在classes目录下执行:
java com.ee2ee.test.PackageTest 


4. 运行jar文件中的class 
原理和运行class文件一样,只需加上参数-cp <jar文件名>即可。
例如:执行test.jar中的类com.ee2ee.test.PackageTest,命令行如下:
java -cp test.jar com.ee2ee.test.PackageTest 

5.显示jdk版本信息 
当一台机器上有多个jdk版本时,需要知道当前使用的是那个版本的jdk,使用参数-version即可知道其版本,命令行为:
java -version 

6. 增加虚拟机可以使用的最大内存 
java虚拟机可使用的最大内存是有限制的,缺省值通常为64MB或128MB。
如果一个应用程序为了提高性能而把数据加载内存中而占用较大的内存,比如超过了默认的最大值128MB,需要加大java虚拟机可使用的最大内存,否则会出现Out of Memory(系统内存不足)的异常。启动java时,需要使用如下两个参数:
-Xms java虚拟机初始化时使用的内存大小
-Xmx java虚拟机可以使用的最大内存
以上两个参数中设置的size,可以带单位,例如:256m表示256MB
举例说明:
java -Xms128m -Xmx256m ...
表示java虚拟机初始化时使用的内存为128MB,可使用的最大内存为256MB。
对于tomcat,可以修改其脚本catalina.sh(unix平台)或catalina.bat(windows平台),设置变量JAVA_OPTS即可,例如:
JAVA_OPTS='-Xms128m -Xmx256m' 
在控制台输出信息中,有个-X(注意是大写)的命令,这个正是查看JVM配置参数的命令。

 

 

 

 

 

分享到:
评论

相关推荐

    java命令行辅助工具

    Java命令行辅助工具是一款专为Java开发者设计的小型应用程序,旨在简化Java源代码的编译和执行过程。在日常开发中,我们通常需要通过命令行界面(CLI)来操作Java程序,这包括编译`.java`源文件为`.class`字节码文件...

    Java命令行classpath的设置

    Java命令行classpath(类路径)的设置是Java开发过程中的一项基础操作,对于理解和运行Java程序至关重要。类路径是指定Java虚拟机(JVM)在执行Java程序时查找类文件的位置。正确配置类路径能确保JVM能够找到并加载...

    Java 命令行 用户管理系统

    Java 命令行 用户管理系统 系统主要功能: ①添加用户: 命令是:add 用户名 年龄 性别 工资 例:add 张三 25 男 3000.00 ②更新用户: 命令是:update id:编号 name=用户名[age=年龄][gender=性别][salary=工资] 例...

    简易Java命令行交互界面框架

    自己写的简易Java命令行交互界面框架,可实现交互shell所具有的基本功能(没有历史记录功能),使用properties文件作为配置文件,利用反射实现命令的解析与向各个命令处理类的分发,使用简单,可作为各类Java小工程...

    java命令行文件管理器

    Java命令行文件管理器是一款基于Java编程语言开发的实用工具,专为用户在终端环境中提供高效、便捷的文件操作体验。这款程序集成了多种文件管理功能,如创建、删除、重命名、拷贝文件,浏览目录,以及压缩与解压缩、...

    Java命令行运行参数说明大全.txt

    ### Java命令行运行参数详解 #### 一、概述 Java作为一种广泛使用的编程语言,其运行依赖于Java虚拟机(JVM)。为了优化JVM的性能,开发者可以通过命令行传递一系列参数来控制JVM的行为。本文将详细介绍Java命令行...

    Java 命令行工具

    Java命令行工具是Java开发中的基础部分,它们允许开发者在没有图形用户界面(GUI)的情况下执行各种任务。这篇博文可能探讨了如何利用Java的命令行工具进行程序的编译、运行和其他相关操作。在Java中,命令行工具...

    Java 命令行以及Java工具总结

    下面将对这些Java命令行工具进行详细的总结和说明。 一、基础工具(Basic Tools) 1. javac:Java编程语言的编译器。开发者使用它将.java源文件编译成.class字节码文件,以便能够在JVM上运行。 2. java:Java应用...

    eclipse java 命令行参数

    这篇博客文章将探讨如何在Eclipse中配置和使用Java命令行参数,这对于理解程序的运行行为以及调试是非常有帮助的。 在Java程序中,命令行参数是通过`main`方法的`String[] args`数组传递的,它们允许我们在不修改...

    java命令行编译基础知识

    Java 命令行编译基础知识 Java 命令行编辑的基础知识是 Java 开发的基础之一。本文将从 Java 命令行编辑的基础知识入手,逐步讲解 Java 编程语言的基本结构和基础知识。 一、 Java 命令行编辑的基础知识 Java ...

    Java 命令行应用开发

    首先,开发Java命令行应用需要对Java编程基础有深入理解,包括类、对象、数据类型、控制结构(如循环和条件语句)、异常处理等。这些是所有Java程序的基础,无论其是否运行在命令行环境。 其次,要创建命令行应用,...

    java命令行大富翁

    《Java命令行大富翁》是一款基于Java编程语言开发的命令行游戏,旨在帮助初学者在娱乐中学习Java基础知识。这款游戏虽然没有华丽的图形界面,但通过简单的字符输出和用户输入,模拟了经典的大富翁游戏规则,为玩家...

    java命令行编译说明

    ### Java命令行编译详解 在深入探讨Java命令行编译的具体细节之前,我们先简要回顾一下Java的编译过程。Java是一种广泛使用的高级编程语言,它支持跨平台运行,这得益于Java虚拟机(JVM)的存在。当开发者编写完...

    java命令行编译全

    在Java编程中,命令行编译是学习和工作中不可或缺的一部分,尤其是在没有集成开发环境(IDE)的情况下。本文将深入探讨如何在命令行环境下编译和运行包含包结构的Java程序。 首先,Java中的包(package)是用来组织...

    Java 命令行解析器 JOpt Simple

    Java命令行解析器JOpt Simple是一款强大的开源工具,专门用于处理Java应用程序的命令行参数和选项。它使得开发者能够方便地构建具有复杂选项结构的命令行界面,而无需编写大量繁琐的代码。JOpt Simple提供了丰富的...

    JAVA命令行计算器连续计算加减乘除

    超级简单的JAVA命令行计算器,能够实现连续计算加减乘除,输入Q退出程序,输入C清空内容。

    java的几个命令行参数

    Java 命令行参数详解 Java 命令行参数是 Java 虚拟机在 DOS 环境下运行时的基本参数设置,掌握这些参数可以更好地利用 Java 虚拟机的功能。本文将详细介绍 Java 命令行参数的使用方法和参数设置。 一、运行 Class ...

    FileManager_Java命令行文件管理器_

    "FileManager_Java命令行文件管理器_" 提到的项目显然是一个使用Java编写的工具,它允许用户通过命令行界面来管理和操作文件系统。在这个场景下,"新建文件夹"是该文件管理器的一个关键功能,让用户能够方便地在当前...

Global site tag (gtag.js) - Google Analytics