Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2011, 18:54   #1
TDrive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 95
По умолчанию при попытке запустить >java ImageViewer выдаёт ошибку

написал программу из учебника по java.
компиляция прошла без ошибок.
при попытке запустить >java ImageViewer
выдаёт ошибку
Код:
java.lang.UnsupportedClassVersionError: ImageViewer : Unsupported major.minor version 51.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(Unknown Source)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$000(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: ImageViewer.  Program will exit.
Exception in thread "main"
вот сам исходник программы
Код:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class ImageViewer{
	public static void main(String[] args){
		JFrame frame = new ImageViewerFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);	
	}
	
}
	
class ImageViewerFrame extends JFrame{
	public ImageViewerFrame(){
		setTitle("ImageViewer");
		setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
		label = new JLabel();
		add(label);
		chooser = new JFileChooser();
		chooser.setCurrentDirectory(new File("."));
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		
		JMenu menu = new JMenu("File");
		menuBar.add(menu);
		
		JMenuItem openItem = new JMenuItem("Open");
		menu.add(openItem);
		openItem.addActionListener(
			new	ActionListener(){
				public void actionPerformed(ActionEvent event){
					int result = chooser.showOpenDialog(null);
					if (result == JFileChooser.APPROVE_OPTION){
						String name = chooser.getSelectedFile().getPath();
						label.setIcon(new ImageIcon(name));
					}
					
				}
			}
		);
		
		JMenuItem exitItem = new JMenuItem("Exit");
		menu.add(exitItem);
		exitItem.addActionListener(
			new ActionListener(){
				public void actionPerformed(ActionEvent event){
					System.exit(0);
				}
			}
		
		);
	}
	private JLabel label;
	private JFileChooser chooser;
	private static final int DEFAULT_WIDTH = 300;
	private static final int DEFAULT_HEIGHT = 400;
}
подскажите что я делаю не так?
TDrive вне форума Ответить с цитированием
Старый 18.08.2011, 19:25   #2
X@OC
Форумчанин
 
Аватар для X@OC
 
Регистрация: 18.06.2010
Сообщений: 273
По умолчанию

Я проверил все работает
проверял на Eclipse.

как среда?
X@OC вне форума Ответить с цитированием
Старый 18.08.2011, 20:51   #3
TDrive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 95
По умолчанию

может у меня с версиями java беда?
>java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
>javac -version
javac 1.7.0
TDrive вне форума Ответить с цитированием
Старый 18.08.2011, 20:54   #4
X@OC
Форумчанин
 
Аватар для X@OC
 
Регистрация: 18.06.2010
Сообщений: 273
По умолчанию

моя версия 1.6.0_16

среда NetBeans?
установи Eclipse и проверь, может там заработает
X@OC вне форума Ответить с цитированием
Старый 18.08.2011, 21:02   #5
TDrive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 95
По умолчанию

да похоже версии разные были компилятор 1.7 а ВМ 1.6
поменял на
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)

и всё заработало.

вообще странно что такая сильная зависимость от версий компилятора и ВМ.
получается если у конечного пользователя будет не та версия ВМ то программа не запустится?
или может из за того что ВМ была 64-бит но по логике 32-бит приложения должны работать на 64-бит.
TDrive вне форума Ответить с цитированием
Старый 18.08.2011, 21:06   #6
TDrive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 95
По умолчанию

кстати только сейчас заметил
почему в
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

написано Сервер ВМ
а в
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)

написано клиент ВМ?
TDrive вне форума Ответить с цитированием
Старый 18.08.2011, 21:07   #7
X@OC
Форумчанин
 
Аватар для X@OC
 
Регистрация: 18.06.2010
Сообщений: 273
По умолчанию

скорее из-за разрядов
X@OC вне форума Ответить с цитированием
Старый 18.08.2011, 21:52   #8
TDrive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 95
По умолчанию

всё таки это из за версии
откомпилированный компилятором javac 1.7.0 класс
на
Код:
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)
выдаёт такую же ошибку
а после компиляции javac 1.6.0_27 запускается на
Код:
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)
и на
Код:
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
разрядность не влияет

видимо есть смысл пока пользоваться компилятором 1.6
TDrive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SetLength для массива при компиляции выдаёт ошибку Gausse Общие вопросы Delphi 3 20.04.2011 15:35
sql server+delph,при попытке сохранить базу в дельфи выдает ошибку adotable dataset not in edit or insert betirsolt БД в Delphi 3 07.05.2010 21:44
IdHTTP.Get Google выдает ошибку при попытке получить исходный текст dkdkdk Работа с сетью в Delphi 6 17.12.2009 16:23
ошибка при попытке запустить программу Fellot Общие вопросы Delphi 3 23.04.2009 21:23
Выдаёт ошибку: acos DOMAIN error,полсе нажатия окей,ещё одну ошибку pow OWERFLAW ERROR prikolist Общие вопросы C/C++ 4 10.04.2009 20:27