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)?$

java -cp 用法介绍的更多相关文章

  1. java -cp用法

    原文出处:http://blog.csdn.net/zhuying_linux/article/details/7714194.感谢作者的分享 java -cp classpath Specify a ...

  2. 怎么通过activity里面的一个按钮跳转到另一个fragment(android FragmentTransaction.replace的用法介绍)

    即:android FragmentTransaction.replace的用法介绍 Fragment的生命周期和它的宿主Activity密切相关,几乎和宿主Activity的生命周期一致,他们之间最 ...

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

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

  4. richface的配置、用法介绍和注意事项

    richface的配置.用法介绍和注意事项一.RichFaces (3.1.x) 技术需求 1.JDK 1.5 或更高版本: 2.支持的 JSF 实现: Sun JSF 1.1 RI - 1.2 My ...

  5. MyEclipse相关用法介绍

    MyEclipse相关用法介绍 ================================================================================ 编辑: ...

  6. XMLHttpRequest用法介绍

    前言: 传统的Web应用请求服务器返回的一般是是完整的HTML页面,这样往往就需要页面进行刷新操作,不仅耗时而且用户体验度也不好.最典型的代表就是form表单登录操作了.如果登录失败往往是跳转到原网页 ...

  7. LocalDate和LocalTime的用法介绍

    原文:LocalDate和LocalTime的用法介绍 在JAVA中,常用的处理日期和时间的类主要有Date,Calendar,而在JDK1.8中,新增了两个处理日期和时间的类,一个是LocalDat ...

  8. Spring Data JPA系列3:JPA项目中核心场景与进阶用法介绍

    大家好,又见面了. 到这里呢,已经是本SpringData JPA系列文档的第三篇了,先来回顾下前面两篇: 在第1篇<Spring Data JPA系列1:JDBC.ORM.JPA.Spring ...

  9. 好压(HaoZip)的命令行模式用法介绍

    好压压缩软件,又叫“2345好压”,是一款国产的优秀压缩软件,目前是免费的,据官网介绍,该软件永久免费.官网地址:http://haozip.2345.com/ 本文主要对该软件的命令行模式用法进行介 ...

随机推荐

  1. ARC模式下获取retainCount的方法

    _objc_rootRetainCount(obj)可以获取obj的retainCount,不过不清楚是不是私有api,因此建议调试时使用.

  2. dfs · leetcode-22.产生括号组?

    题面 Given n pairs of parentheses, write a function to generate all combinations of well-formed parent ...

  3. 搭建KVM环境——06 创建虚拟机

    若转载请于明显处标明出处:https://www.cnblogs.com/kelamoyujuzhen/p/9071181.html 虚拟机磁盘格式 创建一个raw格式的虚拟机磁盘 [root@Cen ...

  4. inotify+rsync文件实时同步

    原文转自http://dl528888.blog.51cto.com/2382721/771533/ 之前做了“ssh信任与scp自动传输脚本”的技术文档,此方案是作为公司里备份的方法,但在实际的运行 ...

  5. contos 6.6下安装lamp

    安装篇 第一步:配置防火墙(默认情况下,端口80和3306是拒绝访问的,在防火墙上进行配置): vi /etc/sysconfig/iptables(在"COMMIT"的上一行加上 ...

  6. 单播、广播和多播IP地址

    除地址类别外,还可根据传输的消息特征将IP地址分为单播.广播或多播.主机使用IP地址进行一对一(单播).一对多(多播)或一对所有(广播)的通信. 1.单播 单播地址是IP网络中最常见的.包含单播目标地 ...

  7. PHP 基础知识-数组

    PHP 的数组主要分为: 索引数组 - 带有数字索引的数组 关联数组 - 带有指定键的数组 多维数组 - 包含一个或多个数组的数组   索引数组:   有两种创建索引数组的方法: 索引是自动分配的(索 ...

  8. JS 自定义组件

    经常会用到JS插件,但从未研究过插件的写法 目前主流的写法有多种,各有各的优缺点,下面,我就以最常规的一种写法举例 // plugin.js ;(function(undefined) {//防止出现 ...

  9. IP协议首部结构介绍

    当提交给数据链路层进行传送时,一个 I P分片或一个很小的无需分片的 I P数据报称为分组.数据链路层在分组前面加上它自己的首部,并发送得到的帧.I P只考虑它自己加上的 I P首部,对报文本身既不检 ...

  10. mysql json数据类型

    概述 Mysql从5.7.8版本开始支持JSON字段,可以高效的处理JSON文档.相比字符串字段,JSON字段有下面的几处优势: 自动的校验JSON格式,无效的文档会产生错误 优化的存储格式(结构化的 ...