java -cp 用法介紹


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM