添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

当前内容主要为本人学习和了解Apache Commons Cli这个工具类(创建基于控制台的命令行)

当前内容主要参考: Apache Commons Cli的官方文档

主要内容为:

  1. 创建基于-u -p -h之类的命令输入来检验mysql是否可以连接

pom文件:(将lib和jar分离开来)

<dependencies>
	<dependency>
		<groupId>commons-cli</groupId>
		<artifactId>commons-cli</artifactId>
		<version>1.4</version>
	</dependency>
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.34</version>
	</dependency>
</dependencies>
<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-jar-plugin</artifactId>
			<version>2.6</version>
			<configuration>
				<archive>
					<manifest>
						<addClasspath>true</addClasspath>
						<classpathPrefix>lib/</classpathPrefix>
						<mainClass>com.hy.apache.commons.test.cli.MySQLConnectionCliTest</mainClass>
					</manifest>
				</archive>
			</configuration>
		</plugin>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-dependency-plugin</artifactId>
			<version>2.10</version>
			<executions>
				<execution>
					<id>copy-dependencies</id>
					<phase>package</phase>
					<goals>
						<goal>copy-dependencies</goal>
					</goals>
					<configuration>
						<outputDirectory>${project.build.directory}/lib</outputDirectory>
					</configuration>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

2. 基本demo

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; * @author hy * @createTime 2021-06-19 07:47:39 * @description 当前内容主要为测试当前的apache commons这个工具类 public class MySQLConnectionCliTest { // 一个简单的jdbc连接操作器,命令行版本的,采用 // -h 表示连接的ip地址 // -u 表示用户名 // -pw 表示密码 // -p 表示端口 // -db 表示访问的数据库 public static void main(String[] args) throws ParseException { Options options = new Options(); // 添加访问mysql需要的各种命令操作 options.addOption("h", true, "mysql的所在ip地址"); options.addOption("u", true, "mysql的登录用户名"); options.addOption("p", true, "mysql所在的端口"); options.addOption("pw", true, "mysql的登录密码"); options.addOption("db", true, "mysql的数据库"); // 创建命令行解析器 CommandLineParser parser = new DefaultParser(); CommandLine commandLine = parser.parse(options, args); if (!commandLine.hasOption("h")) { System.out.println("必须要要有-h参数来设置访问mysql的ip!"); return; if (!commandLine.hasOption("u")) { System.out.println("必须要要有-u参数来设置访问mysql的登录用户名!"); return; if (!commandLine.hasOption("p")) { System.out.println("必须要要有-p参数来设置访问mysql的访问端口!"); return; if (!commandLine.hasOption("pw")) { System.out.println("必须要要有-pw参数来设置访问mysql的登录用户名登录密码!"); return; if (!commandLine.hasOption("db")) { System.out.println("必须要要有-pw参数来设置访问mysql的数据库!"); return; // 加载驱动 try { Class.forName("com.mysql.jdbc.Driver"); String host = commandLine.getOptionValue("h"); String port = commandLine.getOptionValue("p"); String username = commandLine.getOptionValue("u"); String password = commandLine.getOptionValue("pw"); String dbName = commandLine.getOptionValue("db"); String url = "jdbc:mysql://" + host + ":" + port + "/" + dbName; Connection conn = null; try { conn = DriverManager.getConnection(url, username, password); System.out.println("打开mysql连接成功!"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace();

3. 开始打包测试(eclipse)

选择项目,然后右键
在这里插入图片描述
打包后:
在这里插入图片描述
此时将lib这个库复制出来,然后将这个打好的jar包一起复制出来,开始执行

4. 执行结果

jar执行结果
在这里插入图片描述
不使用maven打包(即去掉上面的build部分),此时选中需要运行的main方法开始配置运行参数

在这里插入图片描述
在这里插入图片描述
测试同样成功

Apache Commons CLI提供了一个简单的API,用于呈现,处理和验证命令行界面。 可以在上找到更多信息。 可以浏览 。 与Apache Commons CLI使用有关的问题应张贴到。 在哪里可以获得最新版本? 您可以从我们的下载源代码和二进制文件。 或者,您可以从中央Maven存储库中提取它: < dependency> < groupId>commons-cli</ groupId> < artifactId>commons-cli</ artifactId> < version>1.4</ version> </ dependency> 我们通过GitHub接受拉取请求。 是贡献者交流的主要渠道。 有一些准则可以使我们更容易地应用PR: 没有标签! 请使用空格进行缩进。 尊重代码风
Apache Commons CLI 使用教程 commons-cliApache Commons CLI 是一个用于处理命令行界面的 Java 库。它提供了一个用于解析命令行参数的实用程序。适合用于处理命令行参数,以及构建命令行应用程序。项目地址:https://gitcode.com/gh_mirrors/com/commons-cli 项目介绍 Apache Commons CLI 是一个...
使用dubbo+zookeeper项目时,出现的错误信息: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss 1.关掉防火墙:https://www.jianshu.com/p/e408a8489d75 2.dubbo的版本问题: 主要针对,dubb...
public static void main(String[] args) throws ParseException { String[] p = {"-h"}; parse(p, "test"); public static void parse(String[] args, String cmdName) throws ParseException { Op...
hello, 大家好,我是时海君,时海君就是我,一个自认为智商偏高,情商偏低的程序员。纵使程序虐我千百遍,我待IT如初恋。从今往后看破红尘,两耳不闻窗外事,一心只写圣贤代码。时海君这些年在java后台开发、大数据领域颇有些经验,从今天起带大家走进java企业级应用。     搞java开发的应该都听过apache社区,如果你没有听过千万别说认识时海君。apache 是IT行业鼎鼎有名的开源社区,
Apache Commons的主要目的就是,创建和维护一个可重用的java组件库集合。这样Apache社区的开发者,就可以使用相同的基础组件库来开发不同的Apache项目了。 而Apache Commons的开发者们,将尽量减少这些组件对其他外部
在学习Mahout中Kmeans源码中,了解了大概的结构,了解到对于输入接口,Mahout应该是在apache的Options(org.apache.commons.cli)基础上,实现了自己的Options(org.apache.commons.cli2)。查阅相关资料,大致了解了apache的Options,写了个简单的例子。 package Etl; import org...