그래서 나는 BufferedImages를 사용하려고하는데 그 이유는 더 쉽기 때문에 로딩하는 것이 조금 더 까다로운 것 같습니다. 로드하려면 절대 경로가 필요하다고 생각하고 src / Package.image.png를 시도했지만 실행 가능한 jar로 내보낼 때 작동하지 않습니다. 이 코드는 Eclipse 내에서 작동하지만 어떤 이유로 .jar로 내보낼 때 작동하지 않습니다.
package MainGame;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
public class GraphicsPath {
public static String getGraphicsPath(){
String path = null;
PrintWriter writer = null;
try {
writer = new PrintWriter("text.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
path = GraphicsPath.class.getProtectionDomain().getCodeSource().getLocation().getPath();
System.out.println(path);
writer.println("orignal path " + path);
//FOR LINUX
String[] splited = path.split("/");
//FOR WINDOWS
//String[] splited = path.split("\");
writer.println(path);
path = path.replace("%20", " ");
path += "MainGame/";
writer.println(path);
writer.close();
System.out.println(path);
return path;
}
}
jar로 내보낼 때 text.txt의 내용은 다음과 같습니다.
orignal path ./
./
./MainGame/
다음은 Java 프로젝트에있는 동안 text.txt의 내용입니다.
orignal path /home/mini/workspace/Pokemon%20Game/bin/
/home/mini/workspace/Pokemon%20Game/bin/
/home/mini/workspace/Pokemon Game/bin/MainGame/
내가 올바르게 이해했다면 읽어야 할 package.image.png 파일이 있으며 .jar 파일 안에 있습니다.
나는 전에이 문제가 있었고 경로를 사용 하여이 파일을 찾을 수 없다고 생각합니다. 내 프로젝트 중 하나에서 실제로 URL을 사용하여 파일 위치를 지정했습니다. 내가 한 일의 예를 들어 줄게
그래서 내 jar 파일에는 이미지 폴더가 있습니다. 내가 /images/x.png 있다고
나는 이것을한다
URL u = this.getClass().getResource( "/images/x.png" );
a=ImageIcon(u);
이것을 사용하여 imageIcon을 만들었지 만 URL로 파일을 읽는 방법을 확인할 수 있다고 생각합니다.
편집 : 방금 파일을 읽으려고 시도했지만 작동합니다.
URL test =Class.class.getResource( "/docs/test.txt" );
BufferedReader in = new BufferedReader(new InputStreamReader(test.openStream()));
따라서 InputStreamReader를 다른 것들로 래핑하여 이미지를 얻을 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다