1

我是 linux 和一般编程的新手,我什至似乎无法运行简单的 Hello World 代码。以下是我所做的以及我收到的错误,我正在使用 Cygwin。谁能帮我?

theys@THEYS1 ~/java
$ vim test.java

theys@THEYS1 ~/java
$ ls
helloworld.java  test.java

theys@THEYS1 ~/java
$ uname -a
CYGWIN_NT-6.1-WOW64 THEYS1 1.7.15(0.260/5/3) 2012-05-09 10:25 i686 Cygwin

theys@THEYS1 ~/java
$ cat test.java
public class test {
    public static void main (String [] args) {
            System.out.println ("Hello World!");
    }
}

theys@THEYS1 ~/java
$ gcj --main=test -o test test.java
Exception in thread "main" java.lang.NoClassDefFoundError:
   org.eclipse.jdt.internal.compiler.batch.GCCMain
   at gnu.java.lang.MainThread.run(Unknown Source)
 Caused by: java.lang.ClassNotFoundException:
  org.eclipse.jdt.internal.compiler.batch.GCCMain    not found in
   gnu.gcj.runtime.SystemClassLoader{urls=[], 
     parent=gnu.gcj.runtime.ExtensionClassLoader    {urls=[], parent=null}}
  at java.net.URLClassLoader.findClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at gnu.java.lang.MainThread.run(Unknown Source)
4

2 回答 2

0

这基本上是因为你的类路径设置不正确..就像 Makoto 说的那样使用 openjdk 它更干净!只需阅读此http://sandeepseshan.blogspot.com/2011/06/cygwin-java-and-classpath-problem.html。该链接适用于 Windows,但它可以轻松快速地适应。

并确保在.那里设置当前文件夹(代表当前目录)。

于 2012-06-17T05:59:13.923 回答
0

这是 GCC 的安装问题,见https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45433--with-ecj-jar配置 GCC 时,选项中未指定文件名。或者配置 GCC 时在选项中指定的文件名--with-ecj-jar在您的系统上不存在,在同一位置。您可以通过如下命令在 ecj1 中找到硬编码的文件名: $ strings < /usr/lib/gcc/i686-pc-cygwin/4.7.3/ecj1.exe | fgrep java.class.path= ecj1 可执行文件的精确位置当然取决于您的系统。

于 2018-03-24T10:41:42.613 回答