I had exactly the same problem when i began using JDE on linux

-First, be sure you have no other versions of jde that the one you want. (locate jde)
   I had a Emacs integrated version of JDE that conflicted with JDE-2.1.XXX
   If you 've got one too, remove it.

-It it still doesn't work after a Emacs reboot,
    you can edit the jde's beanshell.el and find the lisp function in which java 
laucnhs the beanshell, you 'll see a commented lisp expression : ;;message( vm-args), 
uncomment it, express it, and restart bsh. You 'll see if the correct java libs are 
loaded.

-Put the classes you want to complete in the jde-global-class-path 
(JDE/Options/General)

Good luck.
  Steff
"Eric D. Friedman" wrote:

> Ever since it was first bundled with the JDE, I have been unable to use
> jde-completion's complete-at-point on either linux or sparc solaris
> (using current releases of xemacs in both cases).  As you can see in
> the lisp backtrace at the end of this message, the completion attempt
> chokes when emacs is asked to eval a variable "//" returned by the beanshell.
>
> Working backwards with the backtrace (or is it forwards with the backtrace,
> ha ha), I learned that the beanshell is unable to find the
> jde.util.Completion class it needs to find appropriate methods.  This
> is reproducible by simply interactively feeding the same static method
> invocation into the *bsh* buffer:
>
> BeanShell 0.96 beta - by Pat Niemeyer ([EMAIL PROTECTED])
> bsh % jde.util.Completion.getClassInfo("Vector");
> // Error: bsh.EvalError: Class: jde.util.Completion not found in namespace : jde 
>.util .Completion .getClassInfo ( "Vector" )
> bsh %
>
> Aha! There's that nettlesome '//' that the jde complains about.
>
> A workaround - adding jde.jar and bsh.jar to your CLASSPATH before launching
> emacs seems to "fix" the problem.
>
> This is admittedly half-baked - other jde packages (jde-wiz, for example)
> work just fine with the beanshell, so I'm at a loss to explain what
> specifically is broken in jde-completion.
>
> This much is certain - whatever lisp routines evaluate beanshell output
> probably should test for the "// Error: bsh.EvalError" message instead
> of letting emacs cough up an obscure error about "//" being a void variable.
>
> I'd be grateful for a more solid fix if anyone can produce one. Until then,
> the classpath hack will have to do.
>
> Eric
>
> ;;; backtrace from failed invocation of jde-complete-at-point
> ;;; with point where the 'X' is in the following
> ;;;
> ;;; Vector v = new Vector();
> ;;; v.aX
> ;;;
> Signaling: (void-variable //)
>   eval(//)
> (if (not (null result)) (eval (read result)) nil)
> )
> (let ((guessed ...) result) (if (stringp guessed) (setq result ...) (if ... ...)) 
>(if (not ...) (eval ...) nil))
> )
> jde-complete-get-classinfo("Vector")
> (setq classinfo (jde-complete-get-classinfo vtype))
> )
>   (progn (setq classinfo (jde-complete-get-classinfo vtype)) (setq fulllist 
>(jde-complete-build-completion-list classinfo)) (setq jde-complete-current-list 
>(jde-complete-find-all-completions ... fulllist)) (setq 
>jde-complete-current-list-index -1) (jde-complete-complete-cycle))
> )
>   (if (not (null vtype)) (progn (setq classinfo ...) (setq fulllist ...) (setq 
>jde-complete-current-list ...) (setq jde-complete-current-list-index -1) 
>(jde-complete-complete-cycle)) (message (format "Can't find any declaration for 
>`%s'!" ...)))
> )
>   (progn (setq vtype (jde-parse-declared-type-of ...)) (if (not ...) (progn ... ... 
>... ... ...) (message ...)))
> )
>   (if (not (null pair)) (progn (setq vtype ...) (if ... ... ...)) (message "No 
>completion at this point."))
> )
>   (let* ((pair ...) vtype classinfo fulllist) (setq jde-complete-current-list nil) 
>(if (not ...) (progn ... ...) (message "No completion at this point.")))
> )
>   (lambda nil "Smart-complete the method at point." (interactive) (if (and ... ... 
>... ... ... ... ... ...) (jde-complete-complete-cycle)) (let* (... vtype classinfo 
>fulllist) (setq jde-complete-current-list nil) (if ... ... ...)))()
>   call-interactively(jde-complete-at-point)
>   command-execute(jde-complete-at-point t)
>   execute-extended-command(nil)
>   call-interactively(execute-extended-command)

Reply via email to