程序里面有语句: package sample
我进到 D:\sample 目录下去用JAVAC 编译提示如下错误;
D:\sample>javac HelloWorldClient.java
HelloWorldClient.java:18: cannot resolve symbol
symbol  : class HelloWorldHome
location: class sample.HelloWorldClient
                HelloWorldHome home =(HelloWorldHome) javax.rmi.PortableRemoteOb
ject.narrow(obj,HelloWorldHome.class);
                ^
HelloWorldClient.java:18: cannot resolve symbol
symbol  : class HelloWorldHome
location: class sample.HelloWorldClient
                HelloWorldHome home =(HelloWorldHome) javax.rmi.PortableRemoteOb
ject.narrow(obj,HelloWorldHome.class);
                                      ^
HelloWorldClient.java:18: cannot resolve symbol
symbol  : class HelloWorldHome
location: class sample.HelloWorldClient
                HelloWorldHome home =(HelloWorldHome) javax.rmi.PortableRemoteOb
ject.narrow(obj,HelloWorldHome.class);                ^
HelloWorldClient.java:19: cannot resolve symbol
symbol  : class HelloWorld
location: class sample.HelloWorldClient
                HelloWorld helloWorld = home.create();
                ^
4 errors-------------------------------------------------------------------------------------
SourceCode 如下,有谁了解多谢指点下,谢谢。/*HelloWorldClient.java*/
package sample;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Hashtable;
public class HelloWorldClient
{
public static void main( String [] args )
{
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "localhost:8080");
env.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
try
{
Context ctx = new InitialContext(env);
Object obj = ctx.lookup( "HelloWorld" );
HelloWorldHome home =(HelloWorldHome) javax.rmi.PortableRemoteObject.narrow(obj,HelloWorldHome.class);
HelloWorld helloWorld = home.create();
System.out.println( helloWorld.hello());
helloWorld.remove();
}
catch ( Exception e )
{
e.printStackTrace();
System.out.println( "Exception: " + e.getMessage() );
}
}
}

解决方案 »

  1.   

    到sample上一层目录,javac \sample\xx.java
      

  2.   

    HelloWorldClient中少了import sample.HelloWorldHome
      

  3.   

    错了,在同一目录下不用的哦
    --------------
    不行,还是提示上面的四个ERROR,找不到 cannot resolve symbol
      

  4.   

    楼主.建议你一下..你可以使用JCreator Pro或者别的开发来编译.有的时候我也遇见过这种问题..
      

  5.   

    believefym(feng) 他的方法可以的,就是要注意
    javac \sample\xx.java
    前面的"\"去掉
    即他后面的一帖  javac sample\xx.java
    根据你的情况确保三件事:
    1) SourceCode放在D:\sample下
    2) 当前目录定位在D:\下
    3) 使用"\"而不是"/"
    然后执行javac sample\HelloWorldClient.java就可以了
    再试试.^_^
      

  6.   

    在classpath里面把HelloWorld.calss 和HelloWorldHome.class的路径设置一下再编译就ok了
      

  7.   

    genify(cjf) 还是不行呢, 奇怪呀...D:\>javac sample\HelloWorldClient.java
    sample\HelloWorldClient.java:18: cannot resolve symbol
    symbol  : class HelloWorldHome
    location: class sample.HelloWorldClient
                    HelloWorldHome home =(HelloWorldHome) javax.rmi.PortableRemoteOb
    ject.narrow(obj,HelloWorldHome.class);
                    ^
    sample\HelloWorldClient.java:18: cannot resolve symbol
    symbol  : class HelloWorldHome
    location: class sample.HelloWorldClient
                    HelloWorldHome home =(HelloWorldHome) javax.rmi.PortableRemoteOb
    ject.narrow(obj,HelloWorldHome.class);
                                          ^
    sample\HelloWorldClient.java:18: cannot resolve symbol
    symbol  : class HelloWorldHome
    location: class sample.HelloWorldClient
                    HelloWorldHome home =(HelloWorldHome) javax.rmi.PortableRemoteOb
    ject.narrow(obj,HelloWorldHome.class);                ^
    sample\HelloWorldClient.java:19: cannot resolve symbol
    symbol  : class HelloWorld
    location: class sample.HelloWorldClient
                    HelloWorld helloWorld = home.create();
                    ^
    4 errors
      

  8.   

    系统变量classpath中带是否设置了当前变量"."?
      

  9.   

    奇怪了,javac是默认classpath中有当前目录“.”的。
    你不加也没关系的,我试过不加也能编译通过的。
      

  10.   

    其他三个CLASS文件就跟HelloWorldClient.java 同在D:\sample目录 下....
      

  11.   

    如果所有.java 文件在同一个目录下,运行这个试试
    javac *.java以前我也碰到类似的错误,这样可以解决
      

  12.   

    谢谢楼上的哥们,你说的方法我也试了,以前试不行
    但是刚刚试了一下又可以了,不知道为什么但是另外一个问题又出来,我做的是一个简单的EJB例子...
    运行客户端JAVA程序的时候提示我(JBOSS已经启动):D:\sample>java HelloWorldClient
    Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldClient会是什么问题呀。怪了?我已经将HELLOWORLD.jar发布到jboss目录下去了...
    SOURCE CODE AS FOLLOWS:/*HelloWorldClient.java*/
    package sample;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import java.util.Hashtable;
    public class HelloWorldClient
    {
    public static void main(String[] args)
    {
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
    env.put(Context.PROVIDER_URL, "localhost:1099");
    env.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
    try
    {
    Context ctx = new InitialContext(env);
    Object obj = ctx.lookup( "HelloWorld" );
    HelloWorldHome home =(HelloWorldHome) javax.rmi.PortableRemoteObject.narrow(obj,HelloWorldHome.class);
    HelloWorld helloWorld = home.create();
    System.out.println( helloWorld.hello());
    helloWorld.remove();
    }
    catch ( Exception e )
    {
    e.printStackTrace();
    System.out.println( "Exception: " + e.getMessage() );
    }
    }
    }
      

  13.   

    谢谢楼上的哥们,你说的方法我也试了,以前试不行
    但是刚刚试了一下又可以了,不知道为什么但是另外一个问题又出来,我做的是一个简单的EJB例子...
    运行客户端JAVA程序的时候提示我(JBOSS已经启动):D:\sample>java HelloWorldClient
    Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldClient会是什么问题呀。怪了?我已经将HELLOWORLD.jar发布到jboss目录下去了...
    SOURCE CODE AS FOLLOWS:/*HelloWorldClient.java*/
    package sample;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import java.util.Hashtable;
    public class HelloWorldClient
    {
    public static void main(String[] args)
    {
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
    env.put(Context.PROVIDER_URL, "localhost:1099");
    env.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
    try
    {
    Context ctx = new InitialContext(env);
    Object obj = ctx.lookup( "HelloWorld" );
    HelloWorldHome home =(HelloWorldHome) javax.rmi.PortableRemoteObject.narrow(obj,HelloWorldHome.class);
    HelloWorld helloWorld = home.create();
    System.out.println( helloWorld.hello());
    helloWorld.remove();
    }
    catch ( Exception e )
    {
    e.printStackTrace();
    System.out.println( "Exception: " + e.getMessage() );
    }
    }
    }
      

  14.   

    look at your environment settings!