LINUX.ORG.RU

SuSe + javac ?


0

0

Не подскажите что нужно доставить, чтобы работало ?

$javac HelloWorld-1.Java
gcj: HelloWorld-1.Java: linker input file unused because linking not done
$  

Исходник:  HelloWorld-1.Java

class HelloWorld-1 {

public static void main (String args []) {
System. out. println ("Hello World");
}

}

anonymous

Стоит поставить оригинальный сановский jdk.

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

>в имени класса "-". Вроде такое нельзя

Так оно и оказалось. 

Но теперь продлемы с запуском:
Исходник:
class HelloWorld_1 {
public static void main(String args[]) {
System.out.println("Hello World");
}
}

$javac HelloWorld_1.java
$ java HelloWorld_1
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld_1
   at gnu.java.lang.MainThread.run (libgcj.so.7)
Caused by: java.lang.ClassNotFoundException: HelloWorld_1 not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/lib/], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass (libgcj.so.7)
   at java.lang.ClassLoader.loadClass (libgcj.so.7)
   at java.lang.ClassLoader.loadClass (libgcj.so.7)
   at java.lang.Class.forName (libgcj.so.7)
   at gnu.java.lang.MainThread.run (libgcj.so.7)
$
   
Библиотека: libgcj.so.7 - ссылка
#ls -lF /usr/lib/libgcj.so.7
lrwxrwxrwx 1 root root 15 Jan 19 19:09 /usr/lib/libgcj.so.7 -> libgcj.so.7.0.0*
#
Путь к ней прописал
$export PATH=$PATH:/ust/lib

Может я чего не понял,
не подскажите что делать ?

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

После 
$javac HelloWorld_1.java
создается: HelloWorld_1.class
В книжке по Java 
http://www.mstu.edu.ru/education/materials/java/index.htm
написано что запускаем приложение:

$java HelloWorld_1

Я так и делаю, получаю:

$java HelloWorld_1
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld_1
   at gnu.java.lang.MainThread.run (libgcj.so.7)
Caused by: java.lang.ClassNotFoundException: HelloWorld_1 not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/lib/], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass (libgcj.so.7)
   at java.lang.ClassLoader.loadClass (libgcj.so.7)
   at java.lang.ClassLoader.loadClass (libgcj.so.7)
   at java.lang.Class.forName (libgcj.so.7)
   at gnu.java.lang.MainThread.run (libgcj.so.7)
$

:((((
    
>Стоит поставить оригинальный сановский jdk.

http://java.sun.com/javase/downloads/index.jsp
- JDK 6
- JDK 6 with Java EE
- JDK 6 with NetBeans 5.5
- Java Runtime Environment (JRE) 6

А какой ?

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

Хм, возможно у ГНУтого jdk classpath по умолчанию не стоит на текущую директорию? Попробуй что-то типа этого:

java -cp . HelloWorld_1

А из сановских - самый обычный JDK 6. Нужен именно JDK. В JRE - только рантайм, без компилятора.

И потом, лучше ставить не скачивая с java.sun.com, а используя механизмы дистрибутива. Не знаю как в SUSE, но из репозитариев Ubuntu можно поставить сановский jdk.

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

$java -cp . HelloWorld_1

не работает :(
А что это за опции, у меня нет "man java"

А вот CLASSPATH - похоже верно.
было:
$echo $CLASSPATH
/usr/lib
$
добавил полный путь от корня к текущему каталогу,
заработало:
$echo $CLASSPATH
/usr/lib:/home/us/common/project/java
$java HelloWorld_1
Hello World
$

Но запускается только из текущего каталога. :(
А как сделать чтобы отовсюду ?  Или нельзя.

         
>А из сановских - самый обычный JDK 6. Нужен именно JDK

Я пробовал на страничке:
http://java.sun.com/javase/downloads/index.jsp
JDK 6  -> DOWNLOAD
The Java SE Development Kit (JDK) includes the Java Runtime Environment (JRE) and command-line development tools that are useful for developing applets and applications.
» More info about Java SE 6 ... 	

Но выдает:
Server not found
Firefox can't find the server at sdlc4a.sun.com.

Похоже только 
Java SE 6 JDK Source Code -> есть но только для SPARC
а где взять для x86 ?
на sun-не нужно брать исходники ?  И собирать
а rpm, бинарные где можно взять ?  
 

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

Опция -cp это и есть CLASSPATH. Можно добавить в CLASSPATH . - тогда будет отовсюду работать.

В репозитариях SUSE должен быть RPM.

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

>Опция -cp это и есть CLASSPATH. Можно добавить в CLASSPATH . - тогда 
>будет отовсюду работать.

Спасибо, наверное сразу не понял синтаксис.

$java -cp .  HelloWorld_1
Hello World
$

Все заработало. :)
Огромное спасибо. 

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