Avatar billede trp79 Nybegynder
14. november 2002 - 23:09 Der er 14 kommentarer og
1 løsning

RMI - Compile fejl.

Når jeg får denne fejl:

C:\test\Compute\Compute.java:7: cannot resolve symbol
symbol  : class Task 
location: interface compute.Compute
    Object executeTask(Task t) throws RemoteException;
                      ^
1 error

Tool completed with exit code 1


Når jeg compilere dette:

package compute;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Compute extends Remote {
    Object executeTask(Task t) throws RemoteException;
}


Det er taget direkte inde fra suns hjemmeside (http://java.sun.com/docs/books/tutorial/rmi/compiling.html) hvor jeg også har hentet de andre klasser. Jeg har læst tutorialen igennem, så jeg er fatter ikke hvorfor fejlen opstår.

Jeg bruger j2sdk1.4.0_01

Håber der er nogen der kan løse fejlen for mig.
Avatar billede stig3 Mester
14. november 2002 - 23:14 #1
Har du downloadet alle 4 filer ?

Ellers kender den ikke den metode......
Avatar billede x-masman Nybegynder
14. november 2002 - 23:16 #2
har du koden til remote?
Avatar billede magoo20000 Nybegynder
14. november 2002 - 23:19 #3
x-masman>>Remote er en del af SDK'en/API'en.

Dit interface Compute kan ikke se klassen Task.
De ligger ikke i samme pakke!
Avatar billede x-masman Nybegynder
14. november 2002 - 23:20 #4
nå ja.. det kan jeg jo godt se nu--:)
Avatar billede stig3 Mester
14. november 2002 - 23:20 #5
Det er ikke pga remote. Det er fordi du ikke har downloadet filen ComputeEngine.java, hvor metoden executeTask() ligger.
Avatar billede magoo20000 Nybegynder
14. november 2002 - 23:20 #6
Jo det gjorde de kan jeg se på SUN's site ;-)
Avatar billede magoo20000 Nybegynder
14. november 2002 - 23:23 #7
Prøv at importere engine i den kodestump du postede!
Avatar billede trp79 Nybegynder
14. november 2002 - 23:30 #8
Jeg har hentet alle java filerne(de ligger i samme bib). Og gjort præcis som der står på siden. Men det funker ikke.
Avatar billede trp79 Nybegynder
14. november 2002 - 23:32 #9
--> magoo20000
Task klassen skal man selv hente ned, så den ligger i det samme bib og kan compiles uden probs.
Avatar billede magoo20000 Nybegynder
14. november 2002 - 23:32 #10
Aha. Hvis de alle ligger i samme bibliotek, skal du sløjfe alt det med package og import xxx, hvor xxx er referencer til den pakkestruktur, som der er lagt op til.
Avatar billede magoo20000 Nybegynder
14. november 2002 - 23:34 #11
Så du får:

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Compute extends Remote {
    Object executeTask(Task t) throws RemoteException;
}

og

import java.rmi.*;
import java.rmi.server.*;

public class ComputeEngine extends UnicastRemoteObject
                          implements Compute
{
    public ComputeEngine() throws RemoteException {
        super();
    }

    public Object executeTask(Task t) {
        return t.execute();
    }

    public static void main(String[] args) {
        if (System.getSecurityManager() == null) {
            System.setSecurityManager(new RMISecurityManager());
        }
        String name = "//host/Compute";
        try {
            Compute engine = new ComputeEngine();
            Naming.rebind(name, engine);
            System.out.println("ComputeEngine bound");
        } catch (Exception e) {
            System.err.println("ComputeEngine exception: " + e.getMessage());
            e.printStackTrace();
        }
    }
}


Osv.
Avatar billede trp79 Nybegynder
14. november 2002 - 23:39 #12
Jeg takker magoo20000, du havde ret i det første svar :o) Det var lidt pinligt... jeg havde stavet en af bibliotekerne forkert... :(
Avatar billede magoo20000 Nybegynder
14. november 2002 - 23:39 #13
Det compiler fint hos mig, hvis jeg gør det på ovenstående måde.
Avatar billede magoo20000 Nybegynder
14. november 2002 - 23:39 #14
Nå ok! Fino!
Avatar billede trp79 Nybegynder
14. november 2002 - 23:40 #15
ups overstående skulle selvf. være et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester