Google 网上论坛不再支持新的 Usenet 帖子或订阅项。历史内容仍可供查看。

Newbie package problem

已查看 0 次
跳至第一个未读帖子

Greg Hinton

未读,
1999年2月25日 03:00:001999/2/25
收件人
I'm using JDK1.2 on Win98. I have classpath set as follows:

C:\My Documents\My Java\greghinton\util>echo %classpath%
.;c:\my documents\my java

I have the following file:

C:\My Documents\My Java\greghinton\util>type Foo.java
//: Foo.java
package greghinton.util;
public class Foo {
public static void main(String[] args) {
System.exit(0);
}
} // end of Foo.java

If I create another java file in any directory containing "import
greghinton.util.Foo;" it can use class Foo with no problems. But when I
try to run Foo.class I get the following:

C:\My Documents\My Java\greghinton\util>java Foo
Exception in thread "main" java.lang.NoClassDefFoundError: Foo (wrong
name: greghinton/util/Foo)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:403)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:101)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$1(URLClassLoader.java:216)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:191)
at java.lang.ClassLoader.loadClass(ClassLoader.java:280)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:275)
at java.lang.ClassLoader.loadClass(ClassLoader.java:237)

C:\My Documents\My Java\greghinton\util>dir Foo.*

Volume in drive C has no label
Volume Serial Number is 3F59-0AFE
Directory of C:\My Documents\My Java\greghinton\util

FOO~1 JAV 146 02-25-99 9:51p Foo.java
FOO~1 CLA 321 02-25-99 9:51p Foo.class
2 file(s) 467 bytes
0 dir(s) 2,178,867,200 bytes free


If I remove the "package greghinton.util;" declaration from Foo.java it
will run ok. I've tried adding an "import" statement to Foo.java but
that doesn't help.

What am I doing wrong? If this is a JDK bug how do I work around it?
Please email a copy of your reply in case I miss it here.

TIA...
Greg

Greg Hinton

未读,
1999年2月25日 03:00:001999/2/25
收件人 Dragan Nedeljkovic
Dragan Nedeljkovic wrote:

>
> Greg Hinton wrote:
>
> > C:\My Documents\My Java\greghinton\util>type Foo.java
> > //: Foo.java
> > package greghinton.util;
> > public class Foo {
> > public static void main(String[] args) {
> > System.exit(0);
> > }
> > } // end of Foo.java
> >
> > C:\My Documents\My Java\greghinton\util>java Foo
> > Exception in thread "main" java.lang.NoClassDefFoundError: Foo (wrong
> > name: greghinton/util/Foo)
>
> How about
> java greghinton.util.Foo

Yep, that does the trick. Thanks.

-Greg-

Dragan Nedeljkovic

未读,
1999年2月26日 03:00:001999/2/26
收件人

Greg Hinton wrote:

> I'm using JDK1.2 on Win98. I have classpath set as follows:
>
> C:\My Documents\My Java\greghinton\util>echo %classpath%
> .;c:\my documents\my java
>
> I have the following file:
>

> C:\My Documents\My Java\greghinton\util>type Foo.java
> //: Foo.java
> package greghinton.util;
> public class Foo {
> public static void main(String[] args) {
> System.exit(0);
> }
> } // end of Foo.java
>

> If I create another java file in any directory containing "import
> greghinton.util.Foo;" it can use class Foo with no problems. But when I
> try to run Foo.class I get the following:
>

> C:\My Documents\My Java\greghinton\util>java Foo
> Exception in thread "main" java.lang.NoClassDefFoundError: Foo (wrong
> name: greghinton/util/Foo)

> at java.lang.ClassLoader.defineClass0(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:403)
> at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:101)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
> at java.net.URLClassLoader.access$1(URLClassLoader.java:216)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:191)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:280)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:275)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:237)
>

...

How about
java greghinton.util.Foo

Regards,
Dragan
--

-------------------------------------------------------------------
Dragan Nedeljkovic ClearNet Inc.
dra...@sprint.ca Toronto, Canada

0 个新帖子