我正在尝试将文本文件加载为InputStream,但是从未拾取txt文件,输入流值始终为 null 。我不知道为什么会这样,我想请求帮助。
nohup java -jar crawler-jar-2014.11.0-SNAPSHOT.jar -classpath /home/nbsxlwa/crawler/resources/common-conf:/home/nbsxlwa/crawler/resources/dotcom-conf:./plugins/*:./lib/* &
txt文件位于/home/nbsxlwa/crawler/resources/dotcom-conf
目录中。我可以确认该文件确实存在,所以我不知道为什么文件没有被提取。设置如下:
`System.getEnvironment(“java.class.path”)
返回以下内容
价值crawler-jar-2014.11.0-SNAPSHOT.jar
代码块正在尝试用文本创建输入流。
String fileRules = conf.get(URLFILTER_REGEX_FILE); System.out.println("file rules = " + fileRules); // Pass the file as a resource in classpath. // return conf.getConfResourceAsReader(fileRules); // Pass the file as a resource in classpath. InputStream is = RegexURLFilter.class.getResourceAsStream("/" + fileRules); System.out.println("Inputstream is = " + is); System.out.println(ClassLoader.getSystemResourceAsStream(fileRules));
上述代码段的输出是
file rules = regex-urlfilter.txt
Inputstream is = null
null
Class-Path:resources / common-conf resources / dotcom-conf resources / olb-conf lib / gora-cassandra-0.3.jar **其他JARS **
答案 0 :(得分:1)
请注意java
man page entry for -jar
使用此选项时,JAR文件是所有用户的来源 类和其他用户类路径设置将被忽略。
因此忽略了其他类路径条目。您必须使用普通的旧java
命令,使用main方法指定一个类,并在类路径中包含.jar
。
您在MANIFEST中指定的相对路径是相对于JAR本身的,或者是完整的URL。