jdk的java和javac命令

  jdk的java命令有些参数之前一直是模糊的,今天弄清晰了,记录一下!

  首先说一下classpath 这个不但包含要依赖的包,而且还包含自己写了的类以及main类

  window: 

    -classpath <目录和 zip/jar 文件的类搜索路径>
                  用 ; 分隔的目录, JAR 档案
                  和 ZIP 档案列表, 用于搜索类文件。

  linux:

    -classpath <目录和 zip/jar 文件的类搜索路径>
                  用 : 分隔的目录, JAR 档案
                  和 ZIP 档案列表, 用于搜索类文件。

比如一个很常见的jdbc驱动测试(oracle),要依赖一个oracle驱动包              

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.PreparedStatement;
 4 import java.sql.ResultSet;
 5 import java.sql.SQLException;
 6 
 7 public class OracleTest {
 8 
 9     private static String driver = "oracle.jdbc.driver.OracleDriver";
10     private static String url = "jdbc:oracle:thin:@//192.168.1.20:1521/orcl2";
11     private static String username = "satp";
12     private static String password = "satp";
13 
14     private void query(String sql) {
15         try {
16             Class.forName(driver);
17             Connection conn = DriverManager.getConnection(url, username, password);
18             PreparedStatement pstmt = conn.prepareStatement(sql);
19             ResultSet rs = pstmt.executeQuery();
20             while (rs.next()) {
21                 int name = rs.getInt(1);
22                 System.out.println(name);
23             }
24             rs.close();
25             pstmt.close();
26         } catch (ClassNotFoundException e) {
27             e.printStackTrace();
28         } catch (SQLException e) {
29             e.printStackTrace();
30         }
31     }
32     
33     public static void main(String[] args) throws SQLException {
34         OracleTest t = new OracleTest();
35         t.query("select 1  from dual");
36     }
37 }

window10下测试:

1.javac编译

E:jtest>ls
OracleTest.java ojdbc14-10.2.0.4.0.jar

E:jtest> javac -cp .ojdbc14-10.2.0.4.0.jar OracleTest.java

2.java执行

### 第一次失败  没有将当前目录添加到cp里
E:jtest> java -cp .ojdbc14-10.2.0.4.0.jar OracleTest 错误: 找不到或无法加载主类 OracleTest
###第二次成功 E:jtest
> java -cp .;.ojdbc14-10.2.0.4.0.jar OracleTest 1

带包编译测试

OracleTest.java添加上package oo;
###
jtest
--|ojdbc14-10.2.0.4.0.jar
--|oo
  --|OracleTest.java

E:jtest>ls ojdbc14-10.2.0.4.0.jar oo E:jtest>cd oo E:jtestoo>ls OracleTest.java E:jtestoo>cd .. E:jtest> javac -cp .ojdbc14-10.2.0.4.0.jar ooOracleTest.java E:jtest> java -cp .;.ojdbc14-10.2.0.4.0.jar oo.OracleTest 1
原文地址:https://www.cnblogs.com/luyang08/p/11164223.html