[英]Convert a java string classpath into a wildcard where more than `N` jars from the same directory show up in the classpath?
我从代理启动器启动 java。 类路径变得如此之大,我需要使用 manifest.mf 文件,否则 Windows 将耗尽 cmd 行空间(bash 也有一个限制,但它要高得多,所以我们在那里看不到它)。
我宁愿只在类路径上使用通配符。
我怎么能写一个Java方法,可以转换的字符串类路径(例如: /my/dir/myjar.jar /my/dir/myjar2.jar ...
)为一个通配符有超过N
从同一目录显示罐子在类路径中?
这是我正在解决的问题:
public static String convertClasspathToWildcard(String cp) {
Set<String> parentCountMap = new HashSet<>();
for (String nextJar : cp.split(SystemUtils.IS_OS_WINDOWS && cp.contains(";") ? ";" : ":")) {
String substring = nextJar.substring(0, nextJar.lastIndexOf(File.separator));
parentCountMap.add(substring);
}
StringBuilder newCp = new StringBuilder();
for (String parent : parentCountMap) {
if (newCp.length() > 0) {
newCp.append(SystemUtils.IS_OS_WINDOWS ? ";" : ":");
}
newCp.append(parent + File.separator + "*");
}
return newCp.toString();
}
不太行,但这是我想要的想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.