LINUX.ORG.RU

[Java] Различия в версиях и реализациях openjdk и sun jdk.


0

2

Существую ли они? Клоню к тому, что не работает кусок кода написанный на явО.

class Example
{
public static void main (String args[])
{
int a = 0;
do
{
System.out.print("*");
a++;
}
while (a < 10);
}
}
java -cp . file.java выдает:
Exception in thread "main" java.lang.NoClassDefFoundError: file
Caused by: java.lang.ClassNotFoundException: file
	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)
Could not find the main class: file. Program will exit.


Существуют. Но в вашем случае играет роль лишь полное отсутсвие понимае процесса.

theos ★★★ ()
Ответ на: комментарий от marvin_yorke

насколько мне известно, это критично

Нет, это не критично.

baverman ★★★ ()
Ответ на: комментарий от Gordy

Я не напарывался на закрытые классы из OracleJDK под открытой реализацией.

baverman ★★★ ()

1. Главный класс должен быть public.

2. Имя файла должно совпадать с именем реализованного в нем класса.

3. Файл(ы) *.java действительно нужно сначала прогнать через компилятор

4. Если файлов несколько, то в файл *.jar, содержащий в себе откомпилированный код, т.е. файлы *.class, должен также включаться файл Manifest.mf с обязательной строчкой Main-Class: полное_имя_главного_класса_в_нотации_Sun.

LongLiveUbuntu ★★★★★ ()
Ответ на: комментарий от Gordy

А еще называют себя ява-программистами.

Именно. Мы не заботимся о деталях реализации.

baverman ★★★ ()
Ответ на: комментарий от LongLiveUbuntu

sun-jdk и openjdk? Они минимальны и заключаются в закрытых библиотеках, поставляемых Sun/Oracle в первом случае. Ну и лицензии еще разные.

LongLiveUbuntu ★★★★★ ()
$ cat > Example.java
class Example
{
public static void main (String args[])
{
int a = 0;
do
{
System.out.print("*");
a++;
}
while (a < 10);
}
}
^D

$ javac Example.java
$ java Example
**********
Ja-Ja-Hey-Ho ★★★ ()
Ответ на: комментарий от Gordy

Почему никто не читает ни тему ни тред?

Это ЛОР, привыкай.

baverman ★★★ ()
Ответ на: комментарий от Gordy

в твоем сообщении увидел я ошибку,
данная ошибка никоим образом не связана с тем, какую версию JVM ты используешь (версию от Sun/Oracle или же OpenJDK)

Ja-Ja-Hey-Ho ★★★ ()
Ответ на: комментарий от Ja-Ja-Hey-Ho

Просто есть об этом расхожее мнение. Что ты думаешь по этому поводу. Не поленись и изреки буквально пару фраз.

Gordy ()

SUN в свое время открыл не весь код для Java, в OpenJDK используют другие реализации для таких частей. Например, для Java2D не открыли часть, отвечающую за растеризацию векторной графики, поэтому в OpenJDK ее заменили на более тормозную и менее корректную, зато opensource.

kamre ★★★ ()
Ответ на: комментарий от LongLiveUbuntu

> Считать ли себя оскорбленным - твой выбор.

Какая дешевая отмазка.

tailgunner ★★★★★ ()
Ответ на: комментарий от kamre

не только, в википедии можно найти более подробный список изменений в Java Class Library по сравнению с Sun JDK
(правда там не уточняют для какой версии JDK он актуален)

Ja-Ja-Hey-Ho ★★★ ()
Ответ на: комментарий от Gordy

закрыть тему, на сколько я знаю, могут только модераторы
вы же пометили данную тему как решенную

Ja-Ja-Hey-Ho ★★★ ()
Ответ на: комментарий от LongLiveUbuntu

> Java не тормозит.
То-то твоя ява подвешивает браузер при воспроизведении аплетов. Думаю Java популярен только за счет мобильных устройств. Нет?

Gordy ()
Ответ на: комментарий от Gordy

То-то твоя ява подвешивает браузер при воспроизведении аплетов

подвешивает браузер

аплетов

Ты чьих будешь из какого года к нам прибыл?

LongLiveUbuntu ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.