export CLASSPATH=.;../somejar.jar;../mysql-connector-java-5.1.6-bin.jar
java -Xmx500m folder.subfolder../dit1/some.xml
cd ..
Run Code Online (Sandbox Code Playgroud)
以上语句用于将类路径设置为linux中已存在的类路径是否正确
我想通过使用上下文类加载器将它们作为资源加载来读取一堆文本文件.
URL url = Thread.currentThread()
.getContextClassLoader()
.getResource("folder/foo.txt");
Run Code Online (Sandbox Code Playgroud)
有没有办法获得名称与给定模式匹配的资源列表?例如:
URL[] matchingUrls = someLibrary.getMatchingResources("folder/*.txt");
Run Code Online (Sandbox Code Playgroud)
像Spring这样的库可以扫描类路径以查找具有给定注释的类,所以我想知道是否有类似的东西加载一堆资源.
我有一个使用版本11的3.6.2和SDK工具的Eclipse设置,它已经构建了我的主项目很长一段时间.
对于一个不同的项目,我认为我需要将我的SDK升级到最新和最好的 - 此时API 14(ICS 4.0).
我甚至无法重建我经历的步骤,但发生的事情是我的项目似乎要构建,但我会发现它会说它正在跳过后编译器步骤,最后我将没有APK.
我还注意到它更新了我的.classpath,因此输出路径是bin/classes而不是.bin.
一路上我尝试将Eclipse更新到最新版本(Indigo 3.7.1),但这没有用.
我从一个批处理文件中运行一个java程序,它重新添加了一些外部jar文件.如何在我的批处理文件中包含这些jar文件.请帮助
我正面临着java设置的问题.
我JAVA_HOME的C:\Program Files\Java\jdk1.7.0_09
PATH是C:\Program Files\Java\jdk1.7.0_09\bin.
当我尝试运行该命令时java -version,它抛出一个错误:
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
Run Code Online (Sandbox Code Playgroud) 我有一个简单的结构:一个包含一批数据的数据jar文件,以及一个使用该数据运行服务的服务jar文件.为了使数据易于替换,我将它们分开,service.jar的classpath包含data.jar所在的目录.
在service.jar中,我使用getResource来加载数据文件.如果数据文件直接位于文件夹中,但是当它们位于data.jar内时失败,则此方法有效;
这失败了:
all
+ globalclasspath
| + data.jar
| + mine.properties
+ daemons
+ service.jar
jsvc -cp globalclasspath:daemons/service.jar (...)
MyClass.class.getClassLoader( ).getResource( "mine.properties" ); // <-- null
Run Code Online (Sandbox Code Playgroud)
但这有效:
all
+ globalclasspath
| + mine.properties
+ daemons
+ service.jar
jsvc -cp globalclasspath:daemons/service.jar (...)
MyClass.class.getClassLoader( ).getResource( "mine.properties" ); // <-- not null
Run Code Online (Sandbox Code Playgroud)
我不想更改类路径(除非我可以将它改为通用的,不依赖于数据jar文件的名称),但是我可以更改getResource字符串(我试过/数据) /mine.properties和/data.jar/mine.properties无济于事.我可以进行更改,以便可以从jar中加载资源吗?
我写了一个完全适用于我的笔记本电脑的程序,但我真的希望它可以在我拥有的服务器上运行.使用NetBeans,我清理并构建了项目.我在我的服务器上复制了文件夹dist的内容,但似乎无法使用命令开始工作
java -jar nameOfFile.jar
我收到了错误
java.lang.NoClassDefFoundError: org/....
Run Code Online (Sandbox Code Playgroud)
我一直在做一些阅读,从我收集到的是,我需要几乎指定我使用的库所在的位置.他们位于一个名为lib的子文件夹中.
题:
那么为了能够运行我的jar,我需要做什么?
直到java9在运行时通过编程方式将所有人使用的外部jar添加到类路径:
URLClassLoader sysloader = (URLClassLoader) ClassLoader.getSystemClassLoader();
Method method = URLClassLoader.class.getDeclaredMethod("addURL", new Class[]{URL.class});
method.invoke(sysloader, new Object[]{file.toURI().toURL()});
Run Code Online (Sandbox Code Playgroud)
现在用java9我们有问题:
线程"main"中的异常java.lang.ClassCastException:java.base/jdk.internal.loader.ClassLoaders $ AppClassLoader无法强制转换为java.base/java.net.URLClassLoader
URLClassLoader 在Java 9中不再有效.在jdk9下如何以编程方式在运行时向类路径添加外部jar?
如果我有两个同名的类在我的类路径中的两个不同的jar中说Matcher.java,其中一个将由JVM拾取,那么我是否可以建议JVM选择一个特定的?
我想从我的类路径中获取一个xml文件来解组它并将其用于测试目的.我的问题是将它作为InputStream.我写了这些行,但我总是得到一个null结果.
InputStream is = getClass().getResourceAsStream("WebContent/WEB-INF/classes/testing/"+ COMPLETE_DOCUMENT + ".xml");
Run Code Online (Sandbox Code Playgroud)
当然,你在方法参数中看到的路径是我文件中的路径.我尝试了几种组合:
WebContent/WEB-INF/classes/testing/
classpath:testing/
classpath*:testing/
Run Code Online (Sandbox Code Playgroud)
但我总是得到InputStream = null.
我甚至试图切换到
ClassLoader.getResourceAsStream(...)
Run Code Online (Sandbox Code Playgroud)
但没有任何反应.我想资源的路径是错误的,但我无法弄清楚在哪里.从我的servlet.xml中,我使用类路径中的一些资源来配置PropertyPlaceholderConfigurer或Jaxb2Marshaller,只需使用语法
"classpath:folder/file.xsd"
Run Code Online (Sandbox Code Playgroud)
它完美无缺.我想要加载我的xml的文件夹是上面示例中的一个兄弟.我错过了什么?
编辑: 我尝试遵循Spring ClassPathResource帮助程序类方法,我得到一个奇怪的行为:正如我之前所说,我已经有一些资源从类路径加载启动时的一些spring bean.如果我在dardo建议的代码中使用这些资源的路径如下:
ClassPathResource cpr = new ClassPathResource("xmlschemas/lrinode.xsd");
InputStream is = cpr.getInputStream();
Run Code Online (Sandbox Code Playgroud)
我还是得到了FileNotFound Exception!当然"xmlschemas/lrinode.xsd"是我成功启动时加载的xsd.即使我从应用程序的根目录开始使用资源的完整路径,它也不起作用.
我开始认为我错过了一些微不足道的东西.