命令行编译带外部包依赖的java源文件 [以JDBC MySQL8为例]

环境: MySQL8 JDK11(SE)

首先下载MySQL8的JDBC驱动

https://dev.mysql.com/downloads/connector/j/选 PlatForm Independent

下载完文件名差不多是 “mysql-connector-java-8.<小版本号>.jar”

然后写一个JDBC小的程序(需要数据库提前建好表)

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.ResultSet;
 4 import java.sql.Statement;
 5 import java.lang.ClassNotFoundException;
 6
 7
 8 public class jdbcer {
 9     public static final String DRIVER = "com.mysql.cj.jdbc.Driver";
10     public static final String URL = "jdbc:mysql://localhost:3306/zk_stu?useSSL=false&serverTimezone=UTC";
11     public static final String USER = "root";
12     public static final String PASSWD = "yourpasswd";
13
14     public static void main(String[] args) throws Exception{
15         Class.forName("com.mysql.cj.jdbc.Driver");
16         Connection conn = DriverManager.getConnection(URL, USER, PASSWD);
17         Statement stmt = conn.createStatement();
18         ResultSet rs = stmt.executeQuery("SELECT * FROM 路人194班");
19
20         while (rs.next()){
21             System.out.println(rs.getString("学号") + "   姓名:" + rs.getString("姓名"));
22         }
23     }
24
25
26 }

把MySQL8的JDBC驱动和jdbcer.java放在同一目录

例子如下(tab键可以智能补全路径)

编译

javac -encoding UTF-8 -cp mysql-connector-java-8.0.16.jar; jdbcer.java

运行

java -cp mysql-connector-java-8.0.16.jar;  jdbcer

  

如果不加cp参数,就会出现类的加载抛出异常(运行错误:java.lang.ClassNotFoundException)

-encoding用于指定编码格式,用UTF-8来避免中文乱码-cp 即classpath是依赖路径,多个包可以用逗号分割,最后用分号表示classpath结束(分号绝不能少)分为两种:目录和jar包
  • 目录型:

      fie.java依赖于目录dirA和dirB下的一些class文件,这种就是目录型的

      编译:      javac -cp dirA,dirB; fie.java

  

  • Jar包型:

      fig.java依赖于1.jar和2.jar(尽管这两个包在同一个目录dirC下)

      编译:       javac -cp 1.jar, 2.jar; fig.java

注意:直接 javac -cp dirC; fig.java 是没用的,因为jar包其实也是一种“目录”,javac编译器要打开jar包才能看到里面的内容


记得不要漏掉逗号分号两者运行都要加classpath,即-cp参数

当然可以编译后直接运行,把两个命令写成一句javac -encoding UTF-8 -cp mysql-connector-java-8.0.16.jar; jdbcer.java && java -cp mysql-connector-java-8.0.16.jar; jdbcer

MySQL8和MySQL5的密码策略和JDBC驱动名等都不一样最后附上:javac中使用-d,以及javac / java中使用-cp介绍

原文地址:https://www.cnblogs.com/yucloud/p/10924899.html

时间: 2024-10-03 20:05:42

命令行编译带外部包依赖的java源文件 [以JDBC MySQL8为例]的相关文章

在命令行执行带包名的Java程序

之前关于如何在命令行运行带包名的java文件的问题,一直搞不懂,直到今天终于明白了是怎么一回事. 以下是我的程序代码 package bonn.thread; import java.sql.SQLOutput; /** * Created by Lin-953 on 2016/1/15. */ public class TestThread { public static void main(String[] args) { Runner r = new Runner(); Thread t

韩顺平细说Servlet视频系列意外收获之用命令行编译带有包的java类解决方案

命令行编译带有包的java类 在命令行编译这一块,基本上都是新手入门时了解一下,然后就直奔IDE而去.这样固然没错,就怕那些--.然后今天在视频中看到了这种方法,觉得可能会用到,所以就记录下来了,以备自查. 步骤如下: 在X盘新建一个java文件,编写一段内带包的代码,示例如下: package com.hsp; public class Exercise{ public static void main(String[] args){ System.out.println("Hello Wor

用命令行编译java并生成可执行的jar包

用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: package test; import java.awt.*; import javax.swing.*; //更多包的导入... class NotePadFrame extends JFrame { //主界面的设计... } //其他相关代码... public class CardLayo

[hadoop]命令行编译并运行hadoop例子WordCount

首先保证JDK.Hadoop安装设置成功 可以参考[linux]ubuntu下安装hadoop [linux]ubutnu12.04 下安装jdk1.7 使用hadoop版本为1.2.1,jdk为1.7 在hadoop-1.2.1\src\examples\org\apache\hadoop\examples找到WordCount.java 源码如下: 1 /** 2 * Licensed under the Apache License, Version 2.0 (the "License&q

使用命令行编译Less源文件

用命令行编译Less源文件需要先安装node.js,官方下载地址:http://nodejs.org/ 使用npm包管理工具安装Less编译器 npm install less -g 参数-g 是安装到全部环境中的指令,如果只想安装特定版本,可使用如下命令 npm install [email protected] -g Less编译器用法: Usage: lessc [option option=parameter ...] <source> [destination] 示例: E:\Dev

使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0

使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0 网上的 MapReduce WordCount 教程对于如何编译 WordCount.java 几乎是一笔带过… 而有写到的,大多又是 0.20 等旧版本版本的做法,即 javac -classpath /usr/local/hadoop/hadoop-1.0.1/hadoop-core-1.0.1.jar WordCount.java,但较新的 2.X 版本中,已经没有 hadoop-core*.jar 这个文件,因此

命令行编译java的一点总结

今天在使用命令行编译时遇到些问题,顺便又仔细分析了一些基础知识,记录总结一下. 下面使用javac和java命令都是在D:\Workspace\java目录下执行的: 1 //Inner.java 2 package cn.inner; 3 public class Inner 4 { 5 public static void show() 6 { 7 System.out.println("I'am inner class."); 8 } 9 } 10 11 //DoTest.jav

Java 命令行编译项目

(初学者的一些总结-高手们勿喷哈-) 原因: 以前一直用Eclispe编程环境运行Java.非常舒服,就像用傻瓜相机照相一般. 有看见许多高手都是直接用vim编辑文件,命令行编译运行,觉得那样不是反而更繁琐? 转折点是在前几天本科毕设题目选定之后.毕设题是一个基于java 字节码的类关系动态分析.需要对.class文件中字节码进行更改(具体的说是在许多指令后加入做标记的新指令,以实现动态跟踪的目的). 我发现,eclipse根本无法如此灵活,他无法直接装载运行一个我修改过的.class文件.它是

如何用命令行编译c++程序

作为程序员,如果仅仅只懂得如何在IDE上拖控件写程序,而不知道如何直接通过编译器编译程序的话.虽然说也没啥大不了的,但是如果掌握了手动编译的技能,那肯定会是一种炫技般的存在.从客观的角度来讲,一方面,这种技能帮你在同事或同学面前体现在自己的编程方面的“骨灰级”地位.另一方面,这种脱离了IDE的编译过程在你刷题的时候能帮你摆脱很多IDE上的恼人事故. 实际上,网上一找,确实有不少这个方面的文章,不过好多都是基于32位的win7或者win8的系统的,很不巧的是,本人的电脑是64位的win10系统.在