[问题]关于ubuntu7.04中安装eclipse中的问题
-
- 帖子: 2
- 注册时间: 2007-09-01 20:59
[问题]关于ubuntu7.04中安装eclipse中的问题
在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
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
-
- 帖子: 2
- 注册时间: 2007-09-01 20:59
对问题的补充
另外在在终端输入
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)
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
- narutozhang
- 帖子: 65
- 注册时间: 2007-01-08 22:18
- 来自: 中国
- 联系:
- AutumnHealth
- 帖子: 776
- 注册时间: 2006-12-20 18:41
Re: 对问题的补充
LZ初学吧?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)
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
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: 对问题的补充
同意,而且java学习主要是编程是想不是一个工具的学习与语言的叠加AutumnHealth 写了:LZ初学吧?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)
java HelloWorld
不要加 .class
另外,初学者建议先不要用Eclipse/Netbeans等IDE
-
- 帖子: 312
- 注册时间: 2006-10-28 11:05
这个不能运行是因为你在用GCJ运行程序,而又没把java.library.path指向相应的本地库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
不过估计这不是你的本意,你是想用SUN-JDK吧,
在~/.bashrc中加入
export JAVA_HOME=SUN-JDK所在路径
export PATH=$JAVA_HOME/bin:$PATH
注意$JAVA_HOME/bin要放在PATH前面,不然你默认使用的就是GCJ了,另外在Eclipse中也要看你使用的JDK是GCJ还是SUN-JDK
-
- 帖子: 312
- 注册时间: 2006-10-28 11:05
Re: 对问题的补充
AutumnHealth 写了: LZ初学吧?
java HelloWorld
不要加 .class
另外,初学者建议先不要用Eclipse/Netbeans等IDE
工欲利其事,必先利其器。一个正常的JAVA开发者基本上是离不开一个优秀的IDE。JAVA不是C或者其它脚本语言。喜欢用notepad,或者VI写JAVA的人不适合学JAVA,改写C吧。
真正用JAVA工作过的人应该都会有这样的感受
- AutumnHealth
- 帖子: 776
- 注册时间: 2006-12-20 18:41
写Helloworld不知道用java命令怎么运行的人也算java开发者?
刚开始学习的时候就用IDE,很难学得好
另外,对于一个程序员,不单是Java,所有语言用IDE来开发都很方便,但不是说离不开IDE。离不开IDE的程序员不是好的程序员。相反,真正的高手,用不用IDE都一样。
用文本编辑器+ant来管理Java项目,不会比IDE差多少,就像vi+make来开发c那样
btw:我公司里就很多人做Java不用IDE
刚开始学习的时候就用IDE,很难学得好
另外,对于一个程序员,不单是Java,所有语言用IDE来开发都很方便,但不是说离不开IDE。离不开IDE的程序员不是好的程序员。相反,真正的高手,用不用IDE都一样。
用文本编辑器+ant来管理Java项目,不会比IDE差多少,就像vi+make来开发c那样
btw:我公司里就很多人做Java不用IDE

尽情享受生活~
Welcome to AutumnHealth's blog:
http://forum.ubuntu.org.cn/weblog.php?w=1421
http://blog.csdn.net/autumnhealth
Welcome to AutumnHealth's blog:
http://forum.ubuntu.org.cn/weblog.php?w=1421
http://blog.csdn.net/autumnhealth
-
- 帖子: 312
- 注册时间: 2006-10-28 11:05
这个赞成,但我觉得理解java, javac命令及CLASSPATH后就可以用IDE了写Helloworld不知道用java命令怎么运行的人也算java开发者?
刚开始学习的时候就用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语句的估计也只是想练练打字
当然,你公司那几个高手可能不在此列
- AutumnHealth
- 帖子: 776
- 注册时间: 2006-12-20 18:41
我是想说“离不开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。
没有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
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