java - 类路径中的“.:./*”是什么意思?
问题描述
我有以下脚本可以运行MyDBCreateSchema/MyDBCreateSchema.class
以初始化数据库。
java –cp ".:./*" MyDBCreateSchema dbHost 1433 id password DBName
是什么".:./*"
?
解决方案
嗯,第一个“。” 前面的“:”表示当前目录,所以当前目录下的所有.class文件都包括在内。“:”之后的“./*”我认为没有任何意义,因为我认为Java不能扩展“*”字符。如果是这样,这可能意味着当前目录下的所有子目录也将包含在类路径中(即,这些子目录中的所有 .class 文件都将包含在类路径中)。
无论哪种方式,这都是非常不可读的,在 bash 脚本中创建一个变量并手动或使用类似的附加单个目录更有意义:
CLASSPATH="."
for DIRECTORY in $(ls /some/directory); do
CLASSPATH+="${CLASSPATH:+:}$DIRECTORY"
done
java -cp "$CLASSPATH" ...
你明白漂移...
推荐阅读
- excel - SSRS 问题的值是文本和数字导出到 excel
- xcode9 - Xcode 9 中的 Symbolicatecrash 错误
- java - 找出从 S3 for Java 下载的压缩文件的 MIME 类型
- javascript - Object.entries 循环只返回第一个条目
- c# - 实体框架核心 - 排序
- php - 为什么我的 php 文件无法读取样式表,即使是 html 也可以读取相同的样式
- .net - 在 IIS 错误中部署 WCF 服务 - “localhost 当前无法处理此请求”
- vim - vimscript: vim 寄存器的补全
- ios - 单元格视图收缩动画很生涩
- javascript - JavaScript Map 对象中的递增值