[问题]关于ubuntu7.04中安装eclipse中的问题

软件和网站开发以及相关技术探讨
lxgen
帖子: 2
注册时间: 2007-09-01 20:59

[问题]关于ubuntu7.04中安装eclipse中的问题

#1

帖子 lxgen » 2007-09-02 21:40

在eclipse中以下程序可以正确运行,在Console可以打印“Welcome to Java World!”
package basic;

public class HelloWorld {
public static void main(String args[]){
System.out.println("Welcome to Java World!");
System.exit(0);
}//end method main
}//end class HelloWorld

但是稍微修改成以下这个样子,程序就不能运行了,不知为什么,望那位朋友帮我解决这个问题!
package basic;
import javax.swing.*;

public class HelloWorld {
public static void main(String args[]){
JOptionPane.showMessageDialog(null,"Welcome to Java World!");
System.exit(0);
}//end method main
}//end class HelloWorld

提示的错误是:
Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit
at java.awt.Toolkit.getDefaultToolkit(libgcj.so.70)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(libgcj.so.70)
at java.awt.Window.<init>(libgcj.so.70)
at java.awt.Frame.<init>(libgcj.so.70)
at java.awt.Frame.<init>(libgcj.so.70)
at javax.swing.SwingUtilities$OwnerFrame.<init>(libgcj.so.70)
at javax.swing.SwingUtilities.getOwnerFrame(libgcj.so.70)
at javax.swing.JOptionPane.<clinit>(libgcj.so.70)
at java.lang.Class.initializeClass(libgcj.so.70)
at basic.HelloWorld.main(HelloWorld.java:6)
Caused by: java.lang.UnsatisfiedLinkError: libgtkpeer: libgtkpeer.so: cannot open shared object file: No such file or directory
at java.lang.Runtime._load(libgcj.so.70)
at java.lang.Runtime.loadLibrary(libgcj.so.70)
at java.lang.System.loadLibrary(libgcj.so.70)
at gnu.java.awt.peer.gtk.GtkToolkit.<clinit>(libgcj.so.70)
at java.lang.Class.initializeClass(libgcj.so.70)
at java.lang.Class.forName(libgcj.so.70)
at java.awt.Toolkit.getDefaultToolkit(libgcj.so.70)
...9 more
lxgen
帖子: 2
注册时间: 2007-09-01 20:59

对问题的补充

#2

帖子 lxgen » 2007-09-02 21:48

另外在在终端输入
javac HelloWorld.java
可以产生HelloWord.class文件,输入
java HelloWorld.class
就不对了:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld.class
at gnu.java.lang.MainThread.run(libgcj.so.70)
Caused by: java.lang.ClassNotFoundException: HelloWorld.class not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.70)
at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.70)
at java.lang.ClassLoader.loadClass(libgcj.so.70)
at java.lang.ClassLoader.loadClass(libgcj.so.70)
at gnu.java.lang.MainThread.run(libgcj.so.70)
头像
reulis
帖子: 156
注册时间: 2007-05-26 11:50

#3

帖子 reulis » 2007-09-25 11:38

:?: java 命令还要带.class后缀??
---------------------------------------------------------------------
我终身奋斗的最低革命纲领:农妇__山泉__有点儿田
头像
牙签儿
帖子: 509
注册时间: 2007-06-30 0:27

#4

帖子 牙签儿 » 2007-09-25 12:04

  • 本人不懂java编程,但给个建议,要形成自己的编程风格,太乱了!
    头像
    narutozhang
    帖子: 65
    注册时间: 2007-01-08 22:18
    来自: 中国
    联系:

    #5

    帖子 narutozhang » 2007-09-27 15:03

    reulis 写了::?: java 命令还要带.class后缀??
    同问
    头像
    AutumnHealth
    帖子: 776
    注册时间: 2006-12-20 18:41

    Re: 对问题的补充

    #6

    帖子 AutumnHealth » 2007-09-27 16:13

    lxgen 写了:另外在在终端输入
    javac HelloWorld.java
    可以产生HelloWord.class文件,输入
    java HelloWorld.class
    就不对了:
    Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld.class
    at gnu.java.lang.MainThread.run(libgcj.so.70)
    Caused by: java.lang.ClassNotFoundException: HelloWorld.class not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
    at java.net.URLClassLoader.findClass(libgcj.so.70)
    at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.70)
    at java.lang.ClassLoader.loadClass(libgcj.so.70)
    at java.lang.ClassLoader.loadClass(libgcj.so.70)
    at gnu.java.lang.MainThread.run(libgcj.so.70)
    LZ初学吧?
    java HelloWorld
    不要加 .class
    另外,初学者建议先不要用Eclipse/Netbeans等IDE
    尽情享受生活~

    Welcome to AutumnHealth's blog:
    http://forum.ubuntu.org.cn/weblog.php?w=1421
    http://blog.csdn.net/autumnhealth
    头像
    qianjigui
    帖子: 221
    注册时间: 2007-06-26 23:50
    来自: WHU
    联系:

    Re: 对问题的补充

    #7

    帖子 qianjigui » 2007-10-06 17:23

    AutumnHealth 写了:
    lxgen 写了:另外在在终端输入
    javac HelloWorld.java
    可以产生HelloWord.class文件,输入
    java HelloWorld.class
    就不对了:
    Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld.class
    at gnu.java.lang.MainThread.run(libgcj.so.70)
    Caused by: java.lang.ClassNotFoundException: HelloWorld.class not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
    at java.net.URLClassLoader.findClass(libgcj.so.70)
    at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.70)
    at java.lang.ClassLoader.loadClass(libgcj.so.70)
    at java.lang.ClassLoader.loadClass(libgcj.so.70)
    at gnu.java.lang.MainThread.run(libgcj.so.70)
    LZ初学吧?
    java HelloWorld
    不要加 .class
    另外,初学者建议先不要用Eclipse/Netbeans等IDE
    同意,而且java学习主要是编程是想不是一个工具的学习与语言的叠加
    sam1860
    帖子: 312
    注册时间: 2006-10-28 11:05

    #8

    帖子 sam1860 » 2007-10-07 15:51

    package basic;
    import javax.swing.*;

    public class HelloWorld {
    public static void main(String args[]){
    JOptionPane.showMessageDialog(null,"Welcome to Java World!");
    System.exit(0);
    }//end method main
    }//end class HelloWorld
    这个不能运行是因为你在用GCJ运行程序,而又没把java.library.path指向相应的本地库
    不过估计这不是你的本意,你是想用SUN-JDK吧,
    在~/.bashrc中加入
    export JAVA_HOME=SUN-JDK所在路径
    export PATH=$JAVA_HOME/bin:$PATH


    注意$JAVA_HOME/bin要放在PATH前面,不然你默认使用的就是GCJ了,另外在Eclipse中也要看你使用的JDK是GCJ还是SUN-JDK
    google drive client for linux 下载
    ---------------------------------------------------------------
    项目|9918视频秀
    CentOS, Nginx, Java, C++, Go, MySQL, Redis
    sam1860
    帖子: 312
    注册时间: 2006-10-28 11:05

    Re: 对问题的补充

    #9

    帖子 sam1860 » 2007-10-07 15:57

    AutumnHealth 写了: LZ初学吧?
    java HelloWorld
    不要加 .class
    另外,初学者建议先不要用Eclipse/Netbeans等IDE

    工欲利其事,必先利其器。一个正常的JAVA开发者基本上是离不开一个优秀的IDE。JAVA不是C或者其它脚本语言。喜欢用notepad,或者VI写JAVA的人不适合学JAVA,改写C吧。

    真正用JAVA工作过的人应该都会有这样的感受
    google drive client for linux 下载
    ---------------------------------------------------------------
    项目|9918视频秀
    CentOS, Nginx, Java, C++, Go, MySQL, Redis
    头像
    AutumnHealth
    帖子: 776
    注册时间: 2006-12-20 18:41

    #10

    帖子 AutumnHealth » 2007-10-07 16:19

    写Helloworld不知道用java命令怎么运行的人也算java开发者?
    刚开始学习的时候就用IDE,很难学得好

    另外,对于一个程序员,不单是Java,所有语言用IDE来开发都很方便,但不是说离不开IDE。离不开IDE的程序员不是好的程序员。相反,真正的高手,用不用IDE都一样。

    用文本编辑器+ant来管理Java项目,不会比IDE差多少,就像vi+make来开发c那样

    btw:我公司里就很多人做Java不用IDE :D
    尽情享受生活~

    Welcome to AutumnHealth's blog:
    http://forum.ubuntu.org.cn/weblog.php?w=1421
    http://blog.csdn.net/autumnhealth
    sam1860
    帖子: 312
    注册时间: 2006-10-28 11:05

    #11

    帖子 sam1860 » 2007-10-08 9:30

    写Helloworld不知道用java命令怎么运行的人也算java开发者?
    刚开始学习的时候就用IDE,很难学得好
    这个赞成,但我觉得理解java, javac命令及CLASSPATH后就可以用IDE了

    另外,对于一个程序员,不单是Java,所有语言用IDE来开发都很方便,但不是说离不开IDE。离不开IDE的程序员不是好的程序员。相反,真正的高手,用不用IDE都一样。

    用文本编辑器+ant来管理Java项目,不会比IDE差多少,就像vi+make来开发c那样

    btw:我公司里就很多人做Java不用IDE Very Happy
    连重构都不用,很难想像
    这样的人很多都是从C转JAVA的,把JAVA当C用,可能可以写出高效率的代码,但可能面向对像的概念都没有。让他们写某些低层库还可以,做项目估计就一般
    另外,个人认为这类型的人都是死脑筋来的,自以为能把JAVA API的接口记住就很威,正如爱恩思坦说的,不要记书上有的东西。既然IDE能帮你提示,为什么要浪费精神去记API了。用笔记本慢慢写import语句,get set语句的估计也只是想练练打字
    当然,你公司那几个高手可能不在此列
    google drive client for linux 下载
    ---------------------------------------------------------------
    项目|9918视频秀
    CentOS, Nginx, Java, C++, Go, MySQL, Redis
    头像
    AutumnHealth
    帖子: 776
    注册时间: 2006-12-20 18:41

    #12

    帖子 AutumnHealth » 2007-10-08 11:19

    我是想说“离不开IDE”这句话说得不对。

    没有IDE就不能重构?没有IDE就没有面向对象思想?
    除了javac java,JDK还提供了很多强大的工具,有些东西是IDE用不来的。还有,不懂ant的话,只能按照IDE给你做好的模板来用,自己懂的话,可以自己build,可以给build添加更多功能。
    没有IDE就不行?eclipse和netbeans都是用java写的,它们出来之前,这些IDE的作者用什么来开发它们?JB?那JB出来之前呢?IDE是很强大,但并不是缺它不可。项目中,更重要的是项目的管理。给你再好的IDE,没有有效的管理,项目也是一塌糊涂的。
    掌握编程思想、OO思想固然重要,API的东西虽然没必要全部记住,但能记得多有坏处吗,至少能提高开发效率,“不要记书本上的东西”?你的爱恩思坦忽悠你的。
    如果不懂基础,IDE给你都不会用。就像LZ,java HelloWorld.class都能写得出来。

    当然,有IDE用我们当然用IDE了,可以提高效率嘛。对于项目的开发,我也建议用IDE的。

    另外,我们跑题了,我是想劝LZ在初学Java的时候不要依赖IDE。
    尽情享受生活~

    Welcome to AutumnHealth's blog:
    http://forum.ubuntu.org.cn/weblog.php?w=1421
    http://blog.csdn.net/autumnhealth
    头像
    jomper
    帖子: 83
    注册时间: 2007-08-03 12:26

    #13

    帖子 jomper » 2007-10-09 10:06

    没有IDE 我想想会碰到那哪些问题
    1.refactor
    2.debug
    3.一些工具的支持没有了 例如maven svn log4j
    还需要用maven 或者 ant来协助编译部署
    4.容器的配合
    5.jdk本身的一些控制 例如降低编译级别
    6.没有IDE UML可能还要另外工具
    7.语法高亮 错误提示 自动出方法 自动看java docs 这些都是很重要的

    想想没有IDE还是很不方便的
    tishian
    帖子: 2
    注册时间: 2007-10-09 13:25

    #14

    帖子 tishian » 2007-10-09 13:37

    至少我感觉现在离不开Eclipse了。
    工作:企业ERP二次开发。
    leo99981
    帖子: 5
    注册时间: 2007-06-09 10:10

    #15

    帖子 leo99981 » 2007-10-17 21:06

    嗯,感觉现在还是用eclipse比较顺手
    回复