Placez un fichier binaire dans le répertoire des ressources pour un projet Java non conventionnel.
FileInputStream stream = new FileInputStream(getClass().getResource("/hoge.bin").getPath());
J'ai écrit un programme à appeler et à utiliser sous une telle forme. Cela fonctionne bien dans l'IDE, donc quand je le mets dans un bocal avec mvn et que je l'appelle de l'extérieur, j'obtiens une exception non trouvée.
Lorsque je décompresse le pot, il y a définitivement hoge.bin
directement en dessous. D'autres fichiers de propriétés dans le même répertoire peuvent être lus. .. ..
Utilisez Class # getResourceAsStream
au lieu de Class # getResource
.
InputStream stream = getClass().getResourceAsStream("/hoge.bin");
```
Les programmes suivants devront peut-être être modifiés, selon la manière dont InputStream est utilisé.
Why?
Répondez ici: https://stackoverflow.com/a/941785
Les fichiers qui ont été consolidés dans jar ne peuvent pas être traités comme des fichiers individuels et doivent être référencés sous la forme de Stream.
J'aimerais lire un document un peu plus sérieux, mais j'en ai assez d'être tellement accro, donc cette fois.
## Pourquoi es-tu devenu si fou
Il a une structure multi-projets gérée par maven, et l'entrée est le projet A, mais la ressource est celle du projet B, il a donc fallu du temps pour identifier le problème car je pensais que c'était une erreur dans mes paramètres.
Recommended Posts