博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java -cp 用法介绍
阅读量:6692 次
发布时间:2019-06-25

本文共 5628 字,大约阅读时间需要 18 分钟。

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

分隔,linux上是分号“:”分隔。不支持通配符,需要列出所有jar包,用一点“.”代表当前路径。  

格式:
java -cp .;myClass.jar packname.mainclassname    
表达式支持通配符,例如:
java -cp .;c:\classes01\myClass.jar;c:\classes02\*.jar  packname.mainclassname 

写法: 

java -cp .;myClass.jar packname.mainclassname   
classpath中的jar文件能使用通配符,如果是多个jar文件,要一个一个地罗列出来,从某种意义上说jar文件也就是路径。 
要指定各个JAR文件具体的存放路径,相同路径有多个可使用通配符 
java -cp .;c:\classes\myClass.jar;d:\classes\*.jar packname.mainclassname 

java -jar myClass.jar
执行该命令时,会用到目录META-INF\MANIFEST.MF文件,在该文件中,有一个叫Main-Class的参数,它说明了java -jar命令执行的类。

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

写法: 
java -cp .;myClass.jar packname.mainclassname   
classpath中的jar文件能使用通配符,如果是多个jar文件,要一个一个地罗列出来,从某种意义上说jar文件也就是路径。

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

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

 

例如,calss文件在D:\workspace\Test\src\sockettest 目录下,然后class文件在sockettest 这个package下

进入这个目录

D:\workspace\Test\src\sockettest>java -cp ../  sockettest.SocketServer1

 

如果是进入父目录即 D:\workspace\Test\src

需要使用D:\workspace\Test\src>java -cp .  sockettest.SocketServer1 

命令执行 

 

 

java -cp java的cp命令

 

java -cp .;c:\dir1\lib.jar Test
 
-cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;”
 
分隔,linux上是分号“:”分隔。不支持通配符,需要列出所有jar包,用一点“.”代表当前路径。
使用范例:
 
java -cp ..\lib\hsqldb.jar org.hsqldb.Server -database mydb 
或 
java -cp ../lib/hsqldb.jar org.hsqldb.Server -databa

 

java -cp .;c:\dir1\lib.jar Test
 
-cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;”
 
分隔,linux上是分号“:”分隔。不支持通配符,需要列出所有jar包,用一点“.”代表当前路径。
使用范例:
 
java -cp ..\lib\hsqldb.jar org.hsqldb.Server -database mydb 
或 
java -cp ../lib/hsqldb.jar org.hsqldb.Server -databa

 

se.0 mydb -dbname.0 mydb 
 
拷贝自ITEYE网站(留待笔记用)。
以下是两个启动脚本:
1.linux系统:
 java -Dfile.encoding=GBK -cp .:../classes:../locale:../lis.jar:../lib/jcifs-1.2.17.jar:../lib/xalan.jar:../lib/xerces.jar:../lib/xercesImpl.jar:../lib/xmltransform.jar:../lib/xml-apis.jar:../lib/bsf.jar:../lib/bsh-1.2b7.jar:../lib/dbswing.jar:../lib/ifxjdbc.jar:../lib/jakarta-regexp-1.2.jar:../lib/jaxp.jar:../lib/jbcl.jar:../lib/jdbc2_0-stdext.jar:../lib/jdom.jar:../lib/jta-spec1_0_1.jar:../lib/Log4j.jar:../lib/mm.mysql-2.0.13-bin.jar:../lib/New_F1J9Swing.jar:../lib/New_Xalan.jar:../lib/oracle.jar:../lib/servlet.jar:../lib/Sprinta.jar:../lib/true_xalan.jar:../lib/commons-pool-1.2.jar:../lib/commons-dbcp-1.2.1.jar:../lib/commons-collections-3.1.jar:../lib/servlet-api.jar com.sinosoft.lis.tb.bpo.BPOServerStart compupacific 10
2.windows系统:
 java -classpath .; com.nci.utility.FileDispatcher FileDispatcher_parken.properties

用maven导出的包中,如果没有在pom文件中将依赖包打进去,是没有依赖包。
1.打包时指定了主类,可以直接用java -jar xxx.jar。
2.打包是没有指定主类,可以用java -cp xxx.jar 主类名称(绝对路径)。
3.要引用其他的jar包,可以用java -classpath $CLASSPATH:xxxx.jar 主类名称(绝对路径)。其中 -classpath 指定需要引入的类。

下面基于pom和META-INF\MANIFEST.MF两个文件的配置,进行了三种情况的测试:
pom.xml的build配置:
    <build>
        <!--<finalName>test-1.0-SNAPSHOT</finalName>-->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                        <mainClass>test.core.Core</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <!--下面是为了使用 mvn package命令,如果不加则使用mvn assembly-->
                <executions>
                    <execution>
                        <id>make-assemble</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

 

META-INF\MANIFEST.MF的内容:
Manifest-Version: 1.0
Main-Class: test.core.Core

 

1.pom中build指定mainClass 但是 META-INF\MANIFEST.MF文件中没有指定Main-Class: test.core.Core
java -jar test-jar-with-dependencies.jar //执行成功
java -cp test-jar-with-dependencies.jar  test.core.Core  //执行失败,提示jar中没有主清单属性

2.pom中build没有指定mainClass 但是 META-INF\MANIFEST.MF文件中指定了Main-Class: test.core.Core
java -jar test-jar-with-dependencies.jar //执行失败,提示jar中没有主清单属性
java -cp test-jar-with-dependencies.jar  test.core.Core  //执行成功

 

 

3.pom中build指定mainClass && META-INF\MANIFEST.MF文件中增加了Main-Class: test.core.Core
java -cp test-jar-with-dependencies.jar  test.core.Core  //执行成功
java -jar test-jar-with-dependencies.jar  //执行成功
---------------------

1匹配验证-验证Email是否正确

Java | 
复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public 
static 
void 
main(String[] args) {
    
// 要验证的字符串
    
String str = 
"service@xsoftlab.net"
;
    
// 邮箱验证规则
    
String regEx = 
"[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\\.){1,3}[a-zA-z\\-]{1,}"
;
    
// 编译正则表达式
    
Pattern pattern = Pattern.compile(regEx);
    
// 忽略大小写的写法
    
// Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
    
Matcher matcher = pattern.matcher(str);
    
// 字符串是否与正则表达式相匹配
    
boolean 
rs = matcher.matches();
    
System.out.println(rs);
}

2在字符串中查询字符或者字符串

Java | 
复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public 
static 
void 
main(String[] args) {
    
// 要验证的字符串
    
String str = 
"baike.xsoftlab.net"
;
    
// 正则表达式规则
    
String regEx = 
"baike.*"
;
    
// 编译正则表达式
    
Pattern pattern = Pattern.compile(regEx);
    
// 忽略大小写的写法
    
// Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
    
Matcher matcher = pattern.matcher(str);
    
// 查找字符串中是否有匹配正则表达式的字符/字符串
    
boolean 
rs = matcher.find();
    
System.out.println(rs);
}

3常用正则表达式

 

规则 正则表达式语法  
一个或多个汉字 ^[\u0391-\uFFE5]+$ 
邮政编码 ^[1-9]\d{5}$
QQ号码 ^[1-9]\d{4,10}$ 
邮箱 ^[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\.){1,3}[a-zA-z\-]{1,}$ 
用户名(字母开头 + 数字/字母/下划线) ^[A-Za-z][A-Za-z1-9_-]+$
手机号码 ^1[3|4|5|8][0-9]\d{8}$ 
URL ^((http|https)://)?([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ 
18位身份证号 ^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X|x)?$

转载于:https://www.cnblogs.com/klb561/p/10850803.html

你可能感兴趣的文章
2014年计划:
查看>>
USACO习题:Broken Necklace
查看>>
打包命令
查看>>
POJ 1679 The Unique MST 【最小生成树/次小生成树模板】
查看>>
什么是动态链接库
查看>>
mysqldump 定时任务 执行后备份的文件为空
查看>>
Python-Django 模型层-单表查询
查看>>
Windows Redis默认配置文件,Redis配置不生效解决方案
查看>>
oracle-------window安装
查看>>
I/O完成端口、异步I/O、APC和线程池(四)——线程池
查看>>
获取Java程序运行的路径 | 获取当前jar包的路径
查看>>
摆脱京城贵妇unittest的骚套路discover,自定义用例执行顺序。
查看>>
selenium webdriver 学习笔记(二)
查看>>
GridView数据绑定控件的模版列时设置显示的格式
查看>>
在SQL SERVER中实现RSA加解密函数(第一版)
查看>>
判断ios或者android
查看>>
C语言中的注释
查看>>
Working with BeforeProperties and AfterProperties on SPItemEventReceiver
查看>>
JavaSE复习(一)继承多态与常用API
查看>>
php 上传文件名出现乱码
查看>>