2017-06-29 1 views
0

私の理解から、コールClassLoader.getSystemResource()はどこに行きますか?

URL resource = ClassLoader.getSystemResource("hp.obo.gz"); 

を持っている既存のコードがあり、これは、要求されたファイルのクラスパスを検索します。私はここからのコードを使用して、クラスパスをプリントアウト:https://www.mkyong.com/java/how-to-print-out-the-current-project-classpath/ をし、次の得た:実際にここで発見されたが

/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202017.1.3/lib/idea_rt.jar 
/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202017.1.3/plugins/junit/lib/junit-rt.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/charsets.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/deploy.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/access-bridge-64.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/cldrdata.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/dnsns.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/jaccess.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/jfxrt.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/localedata.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/nashorn.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/sunec.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/sunjce_provider.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/sunmscapi.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/sunpkcs11.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/ext/zipfs.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/javaws.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/jce.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/jfr.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/jfxswt.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/jsse.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/management-agent.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/plugin.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/resources.jar 
/C:/Program%20Files/Java/jdk1.8.0_66/jre/lib/rt.jar 
/C:/Users/johnp/Desktop/git_stuff/boqa/target/test-classes/ 
/C:/Users/johnp/Desktop/git_stuff/boqa/target/classes/ 
/C:/Users/johnp/.m2/repository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar 
/C:/Users/johnp/.m2/repository/de/charite/compbio/ontologizer-core/2.1-SNAPSHOT/ontologizer-core-2.1-20160115.222100-6.jar 
/C:/Users/johnp/.m2/repository/com/att/research/grappa/1.2.1/grappa-1.2.1.jar 
/C:/Users/johnp/.m2/repository/de/charite/compbio/ontologizer-benchmark/2.1-SNAPSHOT/ontologizer-benchmark-2.1-20160115.222106-6.jar 
/C:/Users/johnp/.m2/repository/com/beust/jcommander/1.35/jcommander-1.35.jar 
/C:/Users/johnp/.m2/repository/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar 
/C:/Users/johnp/.m2/repository/org/apache/logging/log4j/log4j-1.2-api/2.8.2/log4j-1.2-api-2.8.2.jar 
/C:/Users/johnp/.m2/repository/org/apache/logging/log4j/log4j-api/2.8.2/log4j-api-2.8.2.jar 
/C:/Users/johnp/.m2/repository/org/apache/logging/log4j/log4j-core/2.8.2/log4j-core-2.8.2.jar 
/C:/Users/johnp/.m2/repository/junit/junit/4.12/junit-4.12.jar 
/C:/Users/johnp/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar 
/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202017.1.3/lib/idea_rt.jar 

を、(hp.obo.gzは、nullポインタ例外が発生し削除):

C:/ユーザー/ johnp:\ Users \ユーザーjohnp \デスクトップ\ git_stuff \ boqa \ SRC \メイン\リソース

私はそれが上記の出力(それは/ Cに似ているようだ与えられたこの場所を得た方法が表示されません/デスクトップ/ git_stuff/boqa/target/test-classes/ と /C:/ Users/johnp/Desktop/git_stuff/b oqa /ターゲット/クラス/)。どんな助けもありがとう。ありがとう!

+0

クラスパスを出力した*同じ*プログラム実行で 'getSystemResource()'呼び出しをしていますか?そうでない場合、同じクラスパスで実行していることをどのように知っていますか? – Andreas

+0

返信ありがとうございます、はい私はです: 'ClassLoader cl = ClassLoader.getSystemClassLoader(); URL [] urls =((URLClassLoader)cl).getURLs(); System.out.println( "これはすべてです"); (URL url:urls){ System.out.println(url.getFile()); } URL resource = ClassLoader.getSystemResource( "hp.obo.gz"); if(resource == null){ throw new NullPointerException( "見つかりませんでした!"); } ' –

+0

私はMavenがあなたのクラスパスで利用可能なパッケージ化のときに、あなたの.jarまたは.warに' src/main/resources'のすべてを含むことを知っています。だから私はIntellJがこのフォルダをあなたのクラスパスの一部にするように正しく考えています。 –

答えて

0

フォルダを右クリックし、 "ディレクトリを" - > "リソースルート"とマークします。これで、IntelliJの裏で働くすべてのものが設定されます

関連する問題