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