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

yucloud yucloud     2022-12-13     185

关键词:

环境: 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 
View Code

 

把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介绍

带有外部 .jar 的 Java 命令行

】带有外部.jar的Java命令行【英文标题】:Javacommandlinewithexternal.jar【发布时间】:2011-08-2912:11:28【问题描述】:我使用.jar开发一个项目以重用代码。所以我有一个名为TOOLS.jar的.jar,我在文件HelloWorld.java中开发了一个简单的应用... 查看详情

go常用命令

常见命令build:用于编译给定的代码包或Go语言源码文件及其依赖包clean:用于清除执行其他go命令后遗留的目录和文件doc:用于执行godoc命令以打印指定代码包env:用于打印Go语言环境信息fix:用于执行gotoolfix命令以修正给定代码包的源... 查看详情

命令行执行class文件的路径和包问题(代码片段)

...错找不到文件问题 1.报错详情     2.java源文件路径  D:projectonezaiThinkingJavaDemosrcozs2s11Train10.java   3.java代码packageoz.s2.s11;publicclassTrain10publicstaticvoidmain(String[]args)System.out.println(args[0]);System.out.println(args[1]);Sys... 查看详情

cmd中使用javac对整个包编译怎么办?对包里面的某几个java文件编译怎么办?

...序排列。options命令行选项。sourcefiles一个或多个要编译的源文件(例如MyClass.java)。@files一个或多个对源文件进行列表的文件。说明javac有两种方法可将源代码文件名传递给javac:?如果源文件数量少,在命令行上列出文件名即可... 查看详情

gobuild命令

gobuild命令简介1.用于编译源码文件或代码包2.编译非命令源码文件不会产生任何结果文件3.编译命令源码文件会在该命令的执行目录中生成一个可执行文件4.执行该命令切不追加任何参数时,他会试图把当前目录作为代码包并编译... 查看详情

为啥maven编译时不需要jdbc的驱动包

...微软官网下载sqljdbc的jar包本次下载了4.0版本Step2通过maven命令将jar包安装到本地。在有sqljdbc4.jar包的文件夹下,通过shift+右键的方式--》此处打开命令窗口,然后执行以下maven命令mvninstall:install-file-Dfile=sqljdbc4.jar-Dpackaging=jar-DgroupId... 查看详情

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

 https://blog.csdn.net/doupei2006/article/details/8129600https://www.jianshu.com/p/f88ced147224https://www.cnblogs.com/hujunzheng/p/3812278.html用命令行编译java并生成可执行的jar包   1.编写源代码。编写源文 查看详情

(包导入包java命令行)--;的知识

包的相关知识package......导入包importpackage......java在命令行中的知识注:以HelloWorld.java为例,(用命令行运行java时,要把包删掉)1.javacHelloWorld.java2.javaHelloWorldjavadoc-encodingUTF-8-charsetUTF-8Helloworld.java用于查看java文件中的文本注释(jav 查看详情

go命令教程3.goinstall

命令goinstall用于编译并安装指定的代码包及它们的依赖包。当指定的代码包的依赖包还没有被编译和安装时,该命令会先去处理依赖包。与gobuild命令一样,传给goinstall命令的代码包参数应该以导入路径的形式提供。并且,gobuild... 查看详情

java如何使用命令行编译包

最近写Java实验报告的时候遇到了编译包的问题,很烦。。。问题:编写一个类A,它位于包a中,保存到A.java中,再编写一个类B,它位于包b中,保存到B.java中。在类B中实例化类A的一个对象。分别编译类A和类B。使用IDE编译很方便... 查看详情

java命令行从编译到打jar包到执行

 整个过程模拟Eclipse的JavaProject项目,包括src,以及生成的.class文件在bin中,还可能有lib,包含额外的jar包。一.javac编译1.没有额外的jar包1)准备工作我们新建JavaProject,该项目结构如下:bin:必须新建一个空的bin文件,用于... 查看详情

如何使用 Unix 命令行运行 java 包?

】如何使用Unix命令行运行java包?【英文标题】:howcanIrunjavapackageusingtheUnixcommandline?【发布时间】:2017-08-1005:29:38【问题描述】:鉴于我有以下文件结构,有人知道运行java项目的Unix命令或我可以查找的任何资源吗?【问题讨论... 查看详情

怎么在cmd里面运行java

参考技术A方法如下:1、首先我们在命令行运行Java程序需要借助jdk的环境依赖,打开jdk包,需要找到javac和java两个文件,如下图所示2、打开运行窗口,然后在运行窗口中输入cmd命令,如下图所示3、在CMD命令行界面中我们输入cd命... 查看详情

golang学习-基础命令

... 链客将做到:有问必答!! 一、gorun  用于运行命令源码文件,只能接收一个命令源码文件以及若干个库源码文件作为参数。先将源码文件编译成临时文件,然后再运行这个临时文件,临时文件可能包括可执行文件和归... 查看详情

java手动带包编译与运行

...后面有空格不然会报错javac:找不到目录在dos窗口运行整个命令d的后面要加空格再加点不然会报javac:无效的标记:-d.在powershell中运行加不加都可以3.运行命令javait.Daylight629.test2也就是java+包名.类名 查看详情

goinstall命令

goinstall命令简介用于编译并安装代码包或源代码文件安装代码包会在当前工作区的‘pkg/<平台相关目录>‘下生成‘归档文件‘安装命令源码文件会在当前工作区的‘bin‘目录或$GOBIN目录下生成‘可执行文件‘*执行该命令且... 查看详情

java代码在命令行下的编译

...t-indent:2em}.main{font-weight:bolder}目的跟C++一样,JAVA可以通过命令行直接编译得到字节码文件,并且使用java命令运行。通过JAVA的编译和运行命令只是熟悉一下JAVA的一些特征,包括包和目录,classpath,jar格式;而且在调试小程序的时候其... 查看详情

java——cmd命令编译带包名的源程序

.java文件的绝对路径:C:eclipse-workspace est_01src est ry.javatry.java的包名为:packagetest;在cmd中  cd C:eclipse-workspace est_01src est;  javac-d.try.java//此时将try.class文件存入C:eclipse-workspace est_0 查看详情