[해결] 자바 jar과 이미지 파일의 경로에 대한 질문입니다.

GunSmoke의 이미지

jar 파일을 만들어서 클래스 파일과 이미지 파일을 묶어 저장하고 싶습니다.

그런데 jar 내에 이미지 파일을 넣었는데 프로그램을 실행하면 이미지가 보이지 않습니다.
아무래도 경로 때문인듯합니다.

디렉토리 구조는 다음과 같습니다.

classes - com - project(클래스 파일들이 모여있는 디렉토리)
        - images(이미지 파일들이 모여있는 디렉토리)

여기서 jar 파일은 classes에 생성됩니다.

이미지 파일 경로는
getImage("images/aaa.jpg")
이런 식으로 지정했습니다.

파일 경로를 잘못 지정했나요?

endofhope의 이미지

classpath 에 존재하는 파일에 접근하려면 다음과 같이 하시면 됩니다.
InputStream in = getClass().getClassLoader().getResourceAsStream("img.jpg");
로 읽어 들이시거나
URL url = getClass().getClassLoader().getResource("test.gif");
로 접근할수 있습니다.

--
말할 수 있는 것은 분명하게 말해질 수 있다;
말해질 수 없는 것에 대해서는 침묵해야한다.
논리철학논고 - 루드비히 비트겐슈타인

--
말할 수 있는 것은 분명하게 말해질 수 있다;
말해질 수 없는 것에 대해서는 침묵해야한다.
논리철학논고 - 루드비히 비트겐슈타인

GunSmoke의 이미지

이미지를... 이런 식으로 받아왔네요.
역시 입문자의 한계입니다. 제가 보유하고 있는 입문서 3권 모두 이미지를 이런 식으로 받아오고 있습니다.

        ImageIcon ig = new ImageIcon("titleicon.jpg");
        und.setIconImage(ig.getImage());

구체적인 사용법 부탁합니다.

大逆戰

大逆戰

endofhope의 이미지

titleicon.jpg 를 jar 로 묶지 않고 java 를 실행하는 디렉토리 안에 넣으시면 아래의 코드가 동작할 것입니다.

ImageIcon ig = new ImageIcon("titleicon.jpg");
und.setIconImage(ig.getImage());

image 까지 jar 로 묶어야 한다면
URL imageURL = getClass().getClassLoader().getResource("titleicon.jpg");
ImageIcon ig = new ImageIcon(imageURL);

이렇게 호출 가능합니다.
--
말할 수 있는 것은 분명하게 말해질 수 있다;
말해질 수 없는 것에 대해서는 침묵해야한다.
논리철학논고 - 루드비히 비트겐슈타인

--
말할 수 있는 것은 분명하게 말해질 수 있다;
말해질 수 없는 것에 대해서는 침묵해야한다.
논리철학논고 - 루드비히 비트겐슈타인

GunSmoke의 이미지

윽!

미리 말씀드리려했는데 근처에 컴퓨터가 없어서 답변이 늦었습니다. 잘 해결되었습니다.
말씀해주신대로 이미지까지 jar로 묶고 getClass().getClassLoader().getResource()를 호출했습니다. 답변 감사합니다.

大逆戰

大逆戰

lateau의 이미지

친절한 분이 미리 답글을 달아주셨군요. :)
만약 netbeans라면 resourcMap을 작성해서 *.jar안에 포함될 모든 이미지를 불러오는 방법도 있습니다.

- Why don't you come in OpenSolaris? I hope you come together.

--
I think to myself...what a emerging world.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.