启动 jboss 时,我得到以下错误:
java.io.FileNotFoundException: file:\C:\workspace4.3.2\workspacePLE.metadata.plugins\org.jboss.ide.eclipse.as.core\JBoss_AS_4.21507285539456\deploy\LocalDeploy.ear\ple.war\WEB-INF\lib\ple-data.jar!\data\config\HTMLEntities.res (文件名、目录名或卷标语法不正确)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at com.inetpsa.ple.utilitaires.PleCharEntities.initialize(PleCharEntities.java:37)
at com.inetpsa.ple.initialisation.OUInit.initHtmlEntities(OUInit.java:340)
at com.inetpsa.ple.initialisation.OUInit.interneInit(OUInit.java:367)
at com.inetpsa.ple.initialisation.OUInit.reinit(OUInit.java:424)
at com.inetpsa.ple.initialisation.OUInit.init(OUInit.java:412)
但是该文件存在于此位置(但是它位于 jar 内)。
获取文件路径的代码是:
String htmlEntFileName = OUInit.class.getClassLoader().getResource("data/config/HTMLEntities.res").getPath();
如果我遗漏了什么,请告诉我。
您正在使用FileInputStream
,所以我假设您确定创建新FileInputStream
的路径,但是一旦文件在jar内,就无法再将其作为文件访问。
可以使用 Class.getResourceAsStream()
或 Class.getResource().openStream()
作为InputStream
访问该文件。