原文出处:http://blog.csdn.net/zhuying_linux/article/details/7714194。感谢作者的分享

java -cp classpath

Specify a list of directories, JAR archives, and ZIP archives to  search  for  class  files.  Class  path entries  are separated by colons (:). Specifying -classpath or -cp overrides any setting of the CLASSPATH environment variable.

As a special convenience, a class path element containing a basename of  * is considered equivalent to specifying a list of all the files in the directory with the extension .jar or .JAR (a java program  cannot  tell the difference between the two invocations).

For  example,  if directory foo contains a.jar and b.JAR, then the class path element foo/* is expanded to a A.jar:b.JAR, except that the order of jar files is unspecified. All jar files in  the  specified  directory, even  hidden  ones,  are included in the

list. A classpath entry consisting simply of * expands to a list of all the jar files in the current directory. The CLASSPATH environment variable, where defined, will be simi-larly  expanded.  Any  classpath  wildcard expansion occurs before the Java virtual

machine is started -- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking System.getenv("CLASSPATH").

For more information on class paths, see Setting the Class Path.

查看文档得到以上信息,以下是查找到的资料:

-cp 参数后面是类路径,是指定给解释器到哪里找到你的.class文件,

写法:

java -cp .;myClass.jar packname.mainclassname

classpath中的jar文件能使用通配符,如果是多个jar文件,要一个一个地罗列出来,从某种意义上说jar文件也就是路径。

要指定各个JAR文件具体的存放路径,相同路径有多个可使用通配符

java -cp .;c:/classes/myClass.jar;d:/classes/*.jar packname.mainclassname

packname.mainclassname为包含main方法的完全限定类名,如果在classpath中有多个还有main方法的类,通过此命令可以方便选定程序的入口。

例如:

#!/bin/sh

cd /home/work/bvpn/aaa/bin

pwd

nohup /usr/java/jdk1.6.0_11/bin/java -cp .:../lib/log4j-1.2.15.jar:/usr/java/jdk1.6.0_11/lib/dt.jar:/usr/java/jdk1.6.0_11/lib/tools.jar:/usr/java/jdk1.6.0_11/lib/:/usr/java/jdk1.6.0_11/lib/jradius-client.jar:../lib/mysql-connector-java-5.1.12-bin.jar  authAgent.AuthAgentMain

2>&1  &

下面是一些遇到的问题:

1.jar -cp lib/referenced.jar -jar myworks.jar会执行报错,原因如下:

我们使用-jar选项的话java.exe会忽略-cp,-classpath,以及环境变量CLASSPATH的参数。

解决方法一:

不要使用-jar选项,直接调用含有main方法的class文件,这样-cp,-classpath以及环境变量里的CLASSPATH指定的参数就都能使用到了。

java -classpath ./lib/junit.jar:. test/Test1

解决方法二:

继续使用-jar选项,但是在MAINFEST.MF文件中指定引用到jar文件.

Class-Path: myplace/myjar.jar myplace/other.jar jardir/

另外说明一点:这个问题可能有些人遇不到,因为Java的版本不同的原因,我在Sun的JDK和IBM 1.5的JDK都遇到了这个问题,但是对于 IBM 1.4的JDK却没有类似问题

2. 批量加载包的方法:

(一)java命令引入jar时可以-cp参数,但时-cp不能用通配符(多个jar时要一个个写,不能*.jar),通常的jar都在同一目录,且多于1个。前些日子刚刚发现一个参数-Djava.ext.dirs~

如:java -Djava.ext.dirs=lib MyClass  【同样的weblogic中就有这样的参数:-Dweblogic.ext.dirs=$BEA_HOME/patch_weblogic920/profiles/default/sysext_manifest_classpath】

(二)通过Unix shell设置CLASSPATH方式加载(shell实在是方便)

CLASSPATH=`find ../lib -name *.jar|xargs|sed "s/ /:/g"`

CLASSPATH=".:$CLASSPATH

(三)cp 参数后面是类路径,是指定给解释器到哪里找到你的.class文件。使用java -cp命令可以调用一个其他目录下的带有main函数的类。格式为java -cp class文件的路径,下面的例子采用的相对路径。

String commandLine = "java -cp "+ "..\\kwicByPipeServer\\bin KWIC";

Process p = Runtime.getRuntime().exec(commandLine);

这样就可以调用了。

PS:

$BEA_HOME/wlserver_10.3/server/lib/weblogic.jar的classcompatibilityinspector-file-0.xml文件记录了可用的类~

java -cp 用法介绍

java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;” 分隔,linux上是分号“:”分隔.不支持通 ...

Java -cp 命令行引用多个jar包的简单写法(Windows、Linux

1.Windows下用法 在Windows上,可以使用 用法:java your-jar-lib-folder/* your-main-class your-jar-lib-folder为存放一堆ja ...

java -cp

java -cp /home/hdp/log4jTest/log4j-1.2.17.jar:/home/hdp/log4jTest/testLog.jar:/home/hdp/log4jTest/co ...

【转】java list用法示例详解

转自:http://www.jb51.net/article/45660.htm java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对java list用法做了详解. Lis ...

Java List 用法代码分析 非常详细

Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3 ...

Java split用法

Java split用法 java.lang.string.split split 方法  将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separat ...

Java Enum用法详解

Java Enum用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举 ...

java -cp通配符

JDK6支持java -cp后面跟通配符'*',试了一下发现还是需要注意: 错误方式(Wrong way): java  -cp /data/apps/lib/*.jar com.chinacache ...

java -cp & java jar的区别

java -cp java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库和jar包,需要全路径到jar包,多个jar包之间连接符:window上分号“;”.Lin ...

随机推荐

oracle调用java方法的例子(下面所有代码都是在sql/plus中写)

在Oracle中调用Java程序,注意:java方法必须是static类型的,如果想在JAVA中使用system.out/err输出log. 需要在oracle 中执行"call dbms_ ...

dubbo源码分析1-reference bean创建

dubbo源码分析1-reference bean创建 dubbo源码分析2-reference bean发起服务方法调用 dubbo源码分析3-service bean的创建与发布 dubbo源码分 ...

KMP算法详解 --- 彻头彻尾理解KMP算法

前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k. 但是问题在于如何求出这个最大前后缀长度呢? 我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破, 后来翻看 ...

NAND FLASH均衡算法笔记(转)

转来一篇关于NAND FLASH均衡算法的文章,加上一点思考和笔记,认为这种思考有助于更深刻的理解,更好的记忆,所以也算半原创了吧,最起码笔记是原创的.有意思的是,帖子提起这个算法并不是因为嵌入式开发 ...

【C语言】gets()和scanf()函数的区别

scanf函数与gets函数 scanf函数和gets( )函数都可用于输入字符串,但在功能上有区别.若想从键盘上输入字符串"hi hello",则应该使用gets函数. gets ...

js将汉字转为相应的拼音

java java -cp_java -cp用法相关推荐

  1. java中的基本用法

    java中的基本用法 关键字:专门用途的字符串 所有java关键字都是小写英文 标识符 java常量 java变量 ■ 作用域:起作用的区域■ 使用前必须先声明,在赋值.使用变量名访问这块区域 jav ...

  2. Java中getResourceAsStream的用法

    Java中getResourceAsStream的用法 首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String p ...

  3. java -jar 和 -cp详解

    java -jar 和 -cp详解 命令行执行程序 假如我们有一个程序,把它打包成Test.jar,如何运行才能成功输出Hello World package com.test; public cla ...

  4. Java中getResourceAsStream的用法小结

    2019独角兽企业重金招聘Python工程师标准>>> Java中getResourceAsStream的用法小结 一.Java中的getResourceAsStream主要有以下三 ...

  5. java中substring的用法

    2019独角兽企业重金招聘Python工程师标准>>> java中substring的用法 str=str.substring(int beginIndex);截取掉str从首字母起 ...

  6. JAVA中Final的用法

    JAVA中Final的用法 1. 修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的 ...

  7. php simpledateformat,Java中SimpleDateFormat的用法介绍(代码示例)

    本篇文章给大家带来的内容是关于Java中SimpleDateFormat的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.为什么要使用SimpleDateFo ...

  8. java中demo接人_return的用法_如何理解java中return的用法?

    C语言中return用法?(请熟练者进) return是返回值,这个返回值是和函数的类型有关的,函数的类型是什么,他的返回值就是什么 比方主函数intmain() {}这里就必须有一个return,只 ...

  9. Java 8 Stream 流用法及语法

    Java 8 Stream 流用法 1.简介 Stream流 最全的用法 Stream 能用来干什么?用来处理集合,通过 使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据 ...

  10. java中native的用法

    java中native的用法前言:在查看 Thread.java 文件时,发现有一个 方法比较特殊 private native void start0();概念:native关键字说明其修饰的方法是 ...

最新文章

  1. 如何快速的给你的项目添加icon图标
  2. 再见,Kaggle!
  3. TJU 2248. Channel Design 最小树形图
  4. 中国18岁美女机器人:出得厅堂,下得厨房,还要什么女朋友!
  5. Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告
  6. GoogLeNetV1,V2,V3
  7. python k线顶分型_顶分型底分型代码
  8. 如何关闭mac的SIP
  9. ubuntu 显示网速 16 18 20 都可以
  10. 取消idm浏览网页时的自动下载
  11. html中左三角怎么写,css3三角形怎么写?
  12. qq音乐播放小Demo
  13. 小松的STM32教程(6)——ADC
  14. MIT团队开发用脑电波和手势控制机器人的系统
  15. BZOJ_4698_Sdoi2008 Sandy的卡片_后缀数组+单调队列+双指针
  16. Windows XP 下载
  17. ABAP ALV单元格最大显示长度
  18. springboot 发送邮件问题(阿里云企业邮箱)
  19. 代码中的下划线_是什么意思呢?
  20. QGraphicsView图形视图框架使用(三)位移变换和图元定位

热门文章

  1. c语言getc函数_C语言中的getc()函数与示例
  2. C语言实现双人五子棋
  3. 关于trycatchfinal返回值问题
  4. 论文阅读:Social Media and Fake News in the 2016 Election
  5. 解决LinuxMINT上连接ChinaUnicom问题
  6. 联想硬盘启动计算机,win7系统联想台式电脑开机提示error 1962无法找到硬盘启动的解决方法...
  7. Mysql主从切换自动_keepalived实现对mysql主从复制的主备自动切换
  8. 业务性管理(business continuity management)
  9. 更新谷歌浏览器最新版后 Access to XMLHttpRequest at 跨域问题解决方法
  10. 介绍一个直接浏览微软知识库文章的工具