IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

getResourceAsStream Could not read file


Sujet :

avec Java

  1. #1
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut getResourceAsStream Could not read file
    Bonjour,

    je tente de compiler ce projet Java https://github.com/TheThinMatrix/LowPolyTerrain

    je connais a peu près le langage, mais la configuration d'Eclipse me laisse perplexe...après des clics et des tests dans un peu tous les sens, j'ai un projet qui compile (ouf !)

    mais il ne trouve pas le fichier /geometryTerrain/terrainVertex.glsl...et je ne comprend pas pourquoi
    Nom : java.png
Affichages : 236
Taille : 60,7 Ko

    le fichier est bien présent dans l'IDE (et dans bin/geometryTerrain à côté du .class) mais ça ne passe pas :/ dans mes recherches google ils recommandent de regarder le contenu du JAR, mais en fait je ne trouve pas le JAR, j'ai juste un répertoire bin/ avec les .class (qui si je ne m'abuse est utilisé pour produire le JAR) mais il semblerait que ce soit lancé sans cette étape...ce qui est possible pour autant que je sache, le JAR n'étant qu'un packaging.

    Bref, j'ai tenté de placer ledit fichier un peu partout (dans main/geometryTerrain, même dans C:\geometryTerrain - je suis sous Windows) à la racine du Workspace...toujours le même résultat.

    J'ai posé la question sur Github, mais je tente ici aussi

    Merci à qui pourra me dire où le fichier /geometryTerrain/terrainVertex.glsl lu par Class.class.getResourceAsStream(path); est supposé se trouver - ou ce qu'il faut faire pour qu'il soit trouvé

    j'ai bien tenté de suivre en debug mais je m'y perd...à un moment sur BootLoader.findResourceAsStream("java.base", "geometryTerrain/terrainVertex.glsl"); ne me semble pas de bon augure...

    Merci !
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    bon...en attendant de voir si quelqu'un peut m'expliquer j'ai modifier le code comme suis et ça passe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public InputStream getInputStream() throws Exception {
    		return new FileInputStream("C:\\Users\\tothp\\Desktop\\TheThinMatrix\\LowPolyTerrain-master\\bin" + path);//Class.class.getResourceAsStream(path);
    	}
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 326
    Points : 439
    Points
    439
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    B
    Merci à qui pourra me dire où le fichier /geometryTerrain/terrainVertex.glsl lu par Class.class.getResourceAsStream(path); est supposé se trouver - ou ce qu'il faut faire pour qu'il soit trouvé .
    Le fichier doit se trouver dans le classpath du projet. Il est, effectivement, très probable que Eclipse n'utilise pas le Jar mais les fichiers .class compilés. Etant donné qu'une grosse partie de la configuration semble se faire à la main, je vous suggère de voir comment ajouter un dossier au classpath du projet et d'y ajouter le dossier contenant "/geometryTerrain/terrainVertex.glsl". Malheureusement, je ne connais pas assez Eclipse pour vous guider.

    Il est probable que si vous copiez le contenu de ce dossier dans "bin" celà fonctionne. Mais vous risquez de devoir refaire cette opération après chaque build, ce qu'i n'est pas idéal.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je pense surtout qu'il ne faut pas appeler Class.class.getResourceAsStream()

    mais plutôt

    MaClassQueJAiFaitDansMonProjetAMoi.class.getResourceAsStream().

    Autrement dit, cette "bibliothèque" MyFile, n'est pas censée marcher du tout.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Hello,

    alors le fichier est bien déployé dans /bin/ donc de ce côté là c'est bon

    par contre j'aurais tendance à penser qu'en effet la classe MyFile est foireuse mais ma maitrise de Java ne me permet pas de comprendre la notation Class.class

    alors j'ai finalement trouvé d'où il part puisque au lieu d'indiquer le chemin complet je peux simplement ajouter "bin" devant...donc

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	public InputStream getInputStream() throws Exception {
    		return new FileInputStream("bin" + path);//Class.class.getResourceAsStream(path);
    	}

    mais ça ne semble pas naturel car si je me réfère à Android Studio tout ce qui est dans bin va ensuite dans un JAR (ou APK) donc sans le nom bin

    voici le fichier .classpath du projet si ça vous éclaire

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    	<classpathentry kind="src" path="main">
    		<attributes>
    			<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="GameEngine/lib/natives"/>
    		</attributes>
    	</classpathentry>
    	<classpathentry kind="src" path="lib"/>
    	<classpathentry kind="src" path="OpenGlWrapper">
    		<attributes>
    			<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="GameEngine/lib/natives"/>
    		</attributes>
    	</classpathentry>
    	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
    		<attributes>
    			<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="GameEngin/lib/natives"/>
    			<attribute name="module" value="true"/>
    		</attributes>
    	</classpathentry>
    	<classpathentry kind="lib" path="lib/jars/lwjgl.jar"/>
    	<classpathentry kind="lib" path="lib/jars/lwjgl_util.jar"/>
    	<classpathentry kind="lib" path="lib/jars/slick-util.jar"/>
    	<classpathentry kind="output" path="bin"/>
    </classpath>

    après ce n'est pour moi que de la curiosité car maintenant que ça compile ça me va...le but est de comparer le code Java avec la version Delphi que je crée..et oui car au départ je développe sous Delphi, et sous Delphi je maîtrise parfaitement les choses

    En tout cas merci pour vos réponses.

    Paul
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PANIC: could not read from control file:Success
    Par sihem_info dans le forum Administration
    Réponses: 1
    Dernier message: 06/10/2018, 20h49
  2. Réponses: 3
    Dernier message: 02/10/2015, 16h04
  3. Could not open file
    Par DanZzz dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 29/03/2007, 15h44
  4. Réponses: 1
    Dernier message: 12/07/2006, 11h26
  5. tutoriel : Database.Open-Could not use, file already in use
    Par MARTIN Gérard dans le forum XMLRAD
    Réponses: 2
    Dernier message: 04/05/2005, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo