私がやろうとしているのは、jarから.classファイル(コンパイルされたクラスファイル)をリソースストリームとしてロードすることです。この試行は、JUnitテストケースの内部から行われます。
- テストケースは問題なくコンパイルおよび実行されますSO:AFAIKAssetクラスはクラスパスで利用可能である必要があります
- 完全なクラス名は、ファイル構造内の位置と一致している必要がありますSO:パッケージ名のドットをディレクトリ区切り文字に置き換えて、クラスファイルの場所を取得できます
- getResourceAsStreamメソッドを使用して、現在のクラスパスにあるすべてのものにアクセスできます。
理解を深めるために、いくつかのコードを紹介します。
package org.jboss.shrinkwrap.impl.nio.file;
import org.jboss.shrinkwrap.api.asset.Asset;
public class FileStoreTestCase {
// (...)
@Test
public void usedSpace(){
final Class<?> classToAdd = Asset.class;
final String pathToClass = new StringBuilder(classToAdd.getName().replace('.', File.separatorChar)).append(
".class").toString();
final InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(pathToClass);
}
問題は、上記のコードの「in」変数が常にnullであるということです。なぜなのかご存知ですか?そして、どうすればそれを機能させることができますか?
ご入力いただきありがとうございます。