东莞网站优化排名怎样建设学校网站首页
web/
2025/10/6 6:16:05/
文章来源:
东莞网站优化排名,怎样建设学校网站首页,教外国人做中国菜网站,互联网产品经理更新#xff1a;我下面的原始答案很不充分#xff0c;因为我花了三年的时间开发FastClasspathScanner#xff0c;并提交了大量关于某些类路径环境无法使用该库的错误报告。 FastClasspathScanner现在可以处理许多复杂的类路径规范机制。 在一般情况下(即使扫描它)#xff0…更新我下面的原始答案很不充分因为我花了三年的时间开发FastClasspathScanner并提交了大量关于某些类路径环境无法使用该库的错误报告。 FastClasspathScanner现在可以处理许多复杂的类路径规范机制。 在一般情况下(即使扫描它)即使只是找到类路径也可能会变得异常复杂因为有很多方法可以将jar和目录添加到类路径。一方面我在下面提供的代码只能处理URLClassLoader并且许多主要的运行时环境和容器都没有对此进行扩展它们从头实现了自己的类加载器。 但是在Java 9的情况下它变得比这复杂得多因为即使传统的类路径仍然存在未来的一切都将朝着使用模块路径而非类路径发展。 模块具有URL但它们是jrt:/ URL而不是file:/ URL并且模块URL实际上不包括文件路径仅包含模块名称-因此您甚至不能在磁盘上找到该模块。 您唯一的选择是使用(高度封装的)模块系统来处理模块。 我在这里写了有关如何扫描模块路径的文章。FastClasspathScanner处理许多复杂的类路径规范机制因此您无需重新发明轮子。 您可以从FastClasspathScanner中获取类路径条目的列表-这将为您省去尝试与在野外发现的所有各种类路径规范机制一起使用的麻烦。 (如果最后一个链接断开我们深表歉意– FCS的API和文档将很快更改。)--[旧答案-已过时]其他答案在大多数情况下都是正确的但比某些情况下要复杂得多。 MavenTomcat和JUnit具有自己的类路径支持并且不使用系统类路径。到目前为止这是我设法提供的最完整的系统(此代码来自我的Fast Classpath Scanner项目)/** The unique elements of the classpath, as an ordered list. */private final ArrayList classpathElements new ArrayList();/** The unique elements of the classpath, as a set. */private final HashSet classpathElementsSet new HashSet();/** Clear the classpath. */private void clearClasspath() {classpathElements.clear();classpathElementsSet.clear();}/** Add a classpath element. */private void addClasspathElement(String pathElement) {if (classpathElementsSet.add(pathElement)) {final File file new File(pathElement);if (file.exists()) {classpathElements.add(file);}}}/** Parse the system classpath. */private void parseSystemClasspath() {// Look for all unique classloaders.// Keep them in an order that (hopefully) reflects the order in which class resolution occurs.ArrayList classLoaders new ArrayList();HashSet classLoadersSet new HashSet();classLoadersSet.add(ClassLoader.getSystemClassLoader());classLoaders.add(ClassLoader.getSystemClassLoader());if (classLoadersSet.add(Thread.currentThread().getContextClassLoader())) {classLoaders.add(Thread.currentThread().getContextClassLoader());}// Dirty method for looking for any other classloaders on the call stacktry {// Generate stacktracethrow new Exception();} catch (Exception e) {StackTraceElement[] stacktrace e.getStackTrace();for (StackTraceElement elt : stacktrace) {try {ClassLoader cl Class.forName(elt.getClassName()).getClassLoader();if (classLoadersSet.add(cl)) {classLoaders.add(cl);}} catch (ClassNotFoundException e1) {}}}// Get file paths for URLs of each classloader.clearClasspath();for (ClassLoader cl : classLoaders) {if (cl ! null) {for (URL url : ((URLClassLoader) cl).getURLs()) {if (file.equals(url.getProtocol())) {addClasspathElement(url.getFile());}}}}}/** Override the system classpath with a custom classpath to search. */public FastClasspathScanner overrideClasspath(String classpath) {clearClasspath();for (String pathElement : classpath.split(File.pathSeparator)) {addClasspathElement(pathElement);}return this;}/*** Get a list of unique elements on the classpath (directories and files) as File objects, preserving order.* Classpath elements that do not exist are not included in the list.*/public ArrayList getUniqueClasspathElements() {return classpathElements;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87777.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!