문제

저는 Java를 처음 사용합니다. 나는 단순히 내 애플릿의 .jar 파일을 빌드하여 브라우저에서 실행할 수 있습니다. 이것이 내 디렉토리 구조의 모습입니다.

C:\java\pacman\src

모든 .java 클래스 파일을 포함합니다.

C:\java\pacman\assets

약 4-5 개의 이미지와 오디오 파일이 포함되어 있습니다.

다음 코드를 사용하려는 경우 :

Image someFile=getCodeBase().toString() + "file.png";

결과 getCodeBase() ~이다

file:/C:/java/pacman/bin/

그러나 다음 코드가로드되지 않습니다.

   img=new ImgHelper(getCodeBase().toString() + "assets/");
   ImageIO.read(new File(img.getPath("pacman.png")));

내 '자산'폴더를 '빈'폴더로 옮기는 것은 이것을 해결하지 못했습니다. 로딩을 시도합니다.

file:/C:/java/pacman/bin/assets/pacman.png

속담:

Can't read input file!

그러나 그것이 준 URL은 내가 런에 붙여 넣고 Enter를 누르면 잘 열립니다.

그래서 나 자신이 많은 두통을 피하기 위해 나는 내 imghelper 수업에서 코드를 언급하고 이것을했다.

public ImgHelper(String dir)
{
    //this.imgDir=dir;
    imgDir="C:\\java\\pacman\\assets\\";
}

완벽하게 작동합니다. 그러나 나는 이것을 웹 서버에 넣고 싶고, 모든 이미지와 사운드를 어떻게 만들기 위해 어떻게/무엇을 해야하는지 전혀 모른다. 어떤 아이디어?

감사...

도움이 되었습니까?

해결책

모든 것을 JAR 파일에 넣고 class.getResourceasstream을 호출하지 않겠습니까?

JAR 파일은 파일 당 하나의 HTTP 연결이 아닌 단일 HTTP 연결이므로 더 좋습니다. 또한 파일보다 스트림을 사용하는 것이 훨씬 유연합니다.

getResourceasstream은 파일이 항아리에 있지 않으면 작동하며 클래스 파일과 관련이 있어야합니다.

편집하다:

또 다른 것은 애플릿이 서버에있는 경우 파일 메소드가 작동하지 않으므로 로컬 컴퓨터에서 파일을 열려고 할 것입니다 (시도하지 않았다고 생각합니다). 작동하지 않는 서버에 파일 경로를 작성하려고하더라도.

다른 팁

항아리에 대한 Tofubeer에 동의하지만 서버에 이미지를 넣으려면 애플릿 이미지의 자습서를 참조하십시오. 여기. 코드베이스는 애플릿이 서버에있는 모든 위치에 있으므로 서버에도 이미지를 넣을 수 있습니다. Applet.getImage () 메소드와 함께 미디어 추적기를 사용하여 URL을 검색하십시오. 예에서 :

 my_gif = getImage(getDocumentBase(),"imageExample.gif");

작동 할 두 가지 가능한 솔루션이 있습니다.

  • 이미지는 애플릿 용기 외부에있을 수 있습니다. 그런 다음 애플릿은 이미지가있는 디렉토리의 위치로 초기화 될 수 있습니다. 해당 정보가 있으면 서버에서 이미지를로드 할 수 있습니다. Sun Java 튜토리얼은 애플릿 매개 변수의 예제를 제공합니다. 이미지 소스 디렉토리를 전달합니다.
  • 애플릿 클래스 로더는 getResourceasstream () 메소드를 사용하여 애플릿의 항아리에서 이미지를로드하는 데 사용될 수 있습니다.

추신 : 섹션을 참조하면 도움이 될 것입니다. 응용 프로그램에 대한 아이콘을로드하기위한 Java 튜토리얼. 같은 섹션에서 나온 많은 요점에 대해 설명합니다. tofubeer 그리고 남자.

편집 : 파일 API의 사용법은 로컬 파일 시스템에서 읽히기 때문에 권장되지 않습니다. 인터넷의 대부분의 사용자에게는 용납 할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top