udg-propro-spring-2020 / projecte-2020-a3

projecte-2020-a3 created by GitHub Classroom
0 stars 1 forks source link

Fitxer JAR #34

Closed miqueldedo closed 4 years ago

miqueldedo commented 4 years ago

Bones Miquel, Estic intentant provar el tema del fitxer .jar, però no em detecta els fitxers. Una vegada he create el fitxer .jar amb la següent comanda:

jar cmf Manifest.mf ChessGame.jar *.class data/*

Si mostro el contingut del fitxer .jar, em mostra el següent:

$ jar tf ChessGame.jar
META-INF/
META-INF/MANIFEST.MF
Castling.class
Chess.class
ChessGame.class
ConsoleGame.class
Cpu.class
FromJSONParserHelper.class
GameController.class
ImageTile.class
ItemBuilder$1.class
ItemBuilder$BtnType.class
ItemBuilder.class
JSON.class
JSONParseFormatException$1.class
JSONParseFormatException$ExceptionType.class
JSONParseFormatException.class
Knowledge.class
MoveAction$1.class
MoveAction.class
Movement.class
Pair.class
Piece.class
PieceColor$1.class
PieceColor.class
PieceType.class
Position.class
ToJSONParserHelper.class
Turn.class
UIChess$1.class
UIChess$2.class
UIChess$3.class
UIChess$GameState.class
UIChess$GameType.class
UIChess.class
UIPiece.class
data/configuration.json
data/default_game.json
data/file_errors_tests/
data/file_errors_tests/config_error_1.json
data/file_errors_tests/config_error_2.json
data/file_errors_tests/config_error_3.json
data/file_errors_tests/config_error_4.json
data/file_errors_tests/game_error_1.json
data/file_errors_tests/game_error_2.json
data/file_errors_tests/game_error_3.json
data/file_errors_tests/README.md
data/img/
data/img/alfilB.png
data/img/alfilN.png
data/img/b.png
data/img/background.jpg
data/img/cavallB.png
data/img/cavallN.png
data/img/damaB.png
data/img/damaN.png
data/img/peoB.png
data/img/peoN.png
data/img/reiB.png
data/img/reiN.png
data/img/torreB.png
data/img/torreN.png
data/img/w.png
data/knowledge/
data/knowledge/mateDelLocoNegres.json
data/knowledge/pastor2Blanques.json
data/knowledge/pastor3Blanques.json
data/knowledge/pastorBlanques.json
data/knowledge/pastorComplementariBlanques.json
data/modified_config.json
data/started_game.json
data/styles/
data/styles/style.css

Veig doncs, que se m'han carregat tots els fitxers. Quan faig alguna crida a algun fitxer que tinc per defecte (on guardo els estils -style.css-, la classe amb la configuració de la partida, etc.) les crido a partir de la seva ruta des de la carpeta, per exemple:

private static String DEFAULT_CONFIGURATION = "./data/configuration.json";

Veig a venir que quan estan dins el fitxer .jar, aquestes ubicacions no són correctes. Com ho hauria de fer/corretgir?

miqueldedo commented 4 years ago

Carai, ja està arreclat! Es veu que al .jar no li agraden les ubicacions amb el ., sinó que han d'anar sense!

miquelbofill commented 4 years ago

Bona! Aquesta no la sabia.

miqueldedo commented 4 years ago

No saps pas per quina raó podria ser? Per algunes pàgines a internet he trobat que feien servir el mètode getResources().

miquelbofill commented 4 years ago

Sí, aquesta és la que jo sabia. Utilitzar InputStream getClass().getResourceAsStream(String name).

miquelbofill commented 4 years ago

El sistema de fitxers dins d'un JAR no és exactament un sistema de fitxers. Per això cal accedir als fitxers d'una manera especial.