Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GCJ在类中找不到GCCMA_Java - Fatal编程技术网

Java GCJ在类中找不到GCCMA

Java GCJ在类中找不到GCCMA,java,Java,我对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

我对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)

这基本上是因为类路径设置不正确。。就像Makoto说的,使用openjdk会更干净!看看这个。该链接适用于windows,但其适应性很强


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

这是GCC的安装问题,请参阅。配置GCC时,
--with ecj jar
选项中没有指定文件名。或者配置GCC时在
--with ecj jar
选项中指定的文件名在同一位置的系统上不存在。您可以通过以下命令在ecj1中找到硬编码的文件名:

$strings

当然,ecj1可执行文件的精确位置因您的系统而异。

如果您使用的是Linux,是否有使用Cygwin的特殊原因?您可以显式地安装/使用openjdk6 jdk和
javac
来编译代码。使用
gcj
有什么特别的原因吗。它不是Java编译器或环境,而是一个残缺的子集。