Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: rotation в Nov 17, 2011, 21:05



Титла: Проблем с компилация на програма на Java
Публикувано от: rotation в Nov 17, 2011, 21:05
Здравейте!
Немога да си компилирам една джава програма под OPENSUSE 11.2.
Код:
Exception in thread "main" java.lang.NoClassDefFoundError: myfirstprogram
Caused by: java.lang.ClassNotFoundException: myfirstprogram
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:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: myfirstprogram. Program will exit.
Път ли трябва да укажа? Къде да го укажа? Как става това? Трябва ли да правя *.sh файлове. Моля ви, дайте подробни инструкции!


Титла: Проблем с компилация на програма на Java
Публикувано от: bop_bop_mara в Nov 18, 2011, 00:54
Ако файлът ти е myfirstprogram.java, то класът ти трябва да е дефиниран като
Код
GeSHi (Java):
  1. class myfirstprogram{
  2. }
(и обратното, съответно).
Това е първото, за което се сещам, иначе може да кажеш, наистина, как ти се казва файла, какъв е кода в него, какво ползваш за компилацията, коя java искаш да ползваш...

ПС. Чисто стилово - myfirstprogram е много грозно написано, направи го, например, MyFirstProgram, а още по-добре ще е да измислиш смислено име.


Титла: Re: Проблем с компилация на програма на Java
Публикувано от: shoshon в Nov 18, 2011, 03:27
@rotation:
Ако си студент - кофти. Няма да завършиш.
Ако си ученик - кофти. Спри докато е време!
Ако си любител - препоръчвам ти изработване на фигурки от кибритени клечки. Програмирането явно не ти се отдава като дисциплина,

1) Къде е изходния код?
2) Как е компилиран?
3) Каква среда за програмиране използваш?

[root@ivan-laptop ivan]# cat MyClass.java
public class MyClass {
   public static void main (String args[]){
      System.out.println("OMG! I am mindless zombie!");
      System.exit(0);
   }
}
[root@ivan-laptop ivan]#


[root@ivan-laptop ivan]# javac MyClass.java
[root@ivan-laptop ivan]# ll | grep -i MyClass.
-rw-r--r--.  1 root root      466 18 ное  3,21 MyClass.class
-rw-rw-r--.  1 ivan ivan      140 18 ное  3,18 MyClass.java
[root@ivan-laptop ivan]# java MyClass
OMG! I am mindless zombie!
[root@ivan-laptop ivan]#

Ся, да ти кажа азбуката:

A)Метод main стои в публичен клас
Б)Mетод main ВИНАГИ е:
public static void main(String args[])
В)Публичен клас има същото име като името на файла в който е!

Ся да зема да спра tomcat-а, че като те гледам...