Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с JAR, в IDE всё работает а в Jar нет 
V
    Опции темы
x3bytes
Дата 8.11.2006, 05:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Beaver



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 8.11.2006

Репутация: нет
Всего: нет



Как заставить работать JAR?

Вод код 2 java файлов.
Главное окно:
Код


package test;

import javax.swing.*;
import java.awt.*;

public class Main extends JFrame{
    
    private MyPanel panel;
    
    /** Creates a new instance of Main */
    public Main() {
        panel = new MyPanel();
        panel.setLocation(10, 10);
        panel.setSize(200, 200);
        
        Container cont = this.getContentPane();
        cont.setLayout(null);
        cont.setBounds(0, 0, getWidth(), getHeight());
        cont.add(panel);
        
        setSize(240, 320);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Main mn = new Main();
        mn.setVisible(true);
        
    }
    
}


И панель что содержит рисунки и будет грузится в окошко

Код



package test;

import java.awt.Color;
import java.awt.Cursor;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;


public class MyPanel extends JPanel{
    
    private Image[] image;
    private BufferedImage display;
    
    private final int zooms = 3;
    /** Creates a new instance of MyPanel */
    public MyPanel() {
        image = new Image[zooms];
        
        this.setCursor(new Cursor(Cursor.HAND_CURSOR));
        
        try{
        image[0] = getToolkit().getImage(
                this.getClass().getResource("images/0.JPG"));
        
        image[1] = getToolkit().getImage(
                this.getClass().getResource("images/1.JPG"));
        
        image[2] = getToolkit().getImage(
                this.getClass().getResource("images/2.JPG"));
        } catch(Exception e){
            System.out.println(e.getMessage());
        }
        
        MediaTracker media = new MediaTracker(this);
        
        media.addImage(image[0], 0);
        media.addImage(image[1], 1);
        media.addImage(image[2], 2);
        
        try{
            media.waitForAll();
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
        
        display = new BufferedImage(100, 100 , BufferedImage.TYPE_INT_ARGB);
        Graphics grfx = display.getGraphics();
        grfx.drawImage(image[0], 0, 0, null);
    }
    
    public BufferedImage getDisplay(){
        return display;
    }

    public void paint(Graphics g) {
        super.paintComponent(g);
        g = g.create();
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, 335, 530);
        g.drawImage(display, 0, 0, this);
    }
    
}


Я специально создал это приложение для вопроса. Потому вопросы Зачем такая тупость или зачем так делать не стоит спрашивать smile.
Всё очень просто. Окошко содержит панель на которой рисуется BufferedImage. В свою очередь в BufferedImage рисуется кусочек картинки.
Всё работает как часы в NetBeans и Idea. Но там и там не работает JAR файл. Он просто запускается и ничего непоказывает. Более того висит в процессах javaw .
Я смотрел что если убрать media.waitForAll() или просто выводить картинку, то JAR будет работать. Но мне нужно именно через mediaTracker.

У меня просто задача выводить на экран кусок определённой картинки. Я загружаю в память 3 image через mediaTracker и чтоб выводить часть картинки использую BufferedImage.

Это сообщение отредактировал(а) x3bytes - 8.11.2006, 05:45
PM MAIL   Вверх
batigoal
Дата 8.11.2006, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



А какая у тебя структура JAR-файла?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
LSD
Дата 8.11.2006, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



Проверь регистр имен файлов. Для файловой системы под виндами он значения не имеет, а для архивов имеет.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
x3bytes
Дата 8.11.2006, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Beaver



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 8.11.2006

Репутация: нет
Всего: нет



Спасибо! Если написать a1.jpg где jpg маленькие буквы то уже архив начинает работать.
Блин регистр каждый буквы влияет да ещё это никак не отлавливается. Просто JAR вешается в память своей виртуальной машиной и потом даже проект не перебилдить - надо в процессах его останавливать.

Проблема решена, большое Спасибо!
PM MAIL   Вверх
LSD
Дата 8.11.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



Цитата(x3bytes @  8.11.2006,  16:58 Найти цитируемый пост)
Блин регистр каждый буквы влияет да ещё это никак не отлавливается.

Под Linux ты бы даже из файловой системы файлы бы не загрузил.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0499 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.