The time came to start Java development . I chose your tool since I
like emacs.
I came across a few problems trying to make the debugger
JDEbug work.
The documentation is very little so I tried to see what
other people on the mailing list
have to say.
I run JDE on Linux and the list is mainly focused on Windows.
So let's go to the point.
1) I could not start JDEbug even I looked what other people's
.emacs posted yesterday.
I tracked down the problem in the *JDEbug* buffer.
java -classpath /archive/programming/JDE/jde-2.1.6beta17/java/classes:/usr/local/jdk1.2/lib/jpda.jar -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=2112,server=y,suspend=n jde.debugger.Main
Exception in thread "main" java.lang.NoClassDefFoundError: jde/debugger/Main
it looks like you are setting the classpath for jdebug
to <JDE-root>/java/classes which
comes empty instead <JDE-root>/java/lib/jde.jar as i think it
should be.
2) I took jde.jar and unjar-ed it in the classes directories . This time the debugger started but not for long . The output is below.
starting from JDE->Debug App
*** Debugger Output for Process MenuFrame(1) ***
Launched VM Java Debug Interface (Reference Implementation) version
1.0
Java Debug Wire Protocol (Reference Implementation) version 1.0
JVM Debug Interface version 1.0
JVM version 1.2.2-RC2 (Classic VM, build 1.2.2-RC2-K, green threads,
nojit)
Launching vm to run MenuFrame
Running MenuFrame.
vm started...
All threads suspended...
Application I/O closed
Input error; application I/O closed
Application I/O closed
MenuFrame process ended.
vm disconnected...
the *JDEbug buffer shows
JDE> -1 8 launch 4 -vmexec java -home /usr/local/jdk1.2/jre -classpath
/archive/programming/jde-latest/java/lib/jde.jar MenuFrame
(jde-dbo-message
4 "Launched VM Java Debug Interface (Reference Implementation) version
1.0
Java Debug Wire Protocol (Reference Implementation) version 1.0
JVM Debug Interface version 1.0
JVM version 1.2.2-RC2 (Classic VM, build 1.2.2-RC2-K, green threads,
nojit)")
(jde-dbo-command-result 8 1589)
JDE> 4 9 break absolute MenuFrame.java 41
(jde-dbo-event-set
4 "all"
(list "Thread" 1 "main" "waiting on monitor" "suspended by debugger")
(list 'jde-dbo-vm-start-event))
(jde-dbo-command-result 9 0)
JDE> 4 10 run
(jde-dbo-command-result 10)
(jde-dbo-message 4 "Application I/O closed")
(jde-dbo-error 4 "Input error; application I/O closed")
(jde-dbo-message 4 "Application I/O closed")
(jde-dbo-event-set 4 "none" nil
(list 'jde-dbo-vm-death-event))
(jde-dbo-event-set 4 "none" nil
(list 'jde-dbo-vm-disconnected-event))
JDE> -1 11 launch 5 -vmexec java -home /usr/local/jdk1.2/jre -classpath
/archive/programming/jde-latest/java/lib/jde.jar MenuFrame
if I start JDEbug->Processes->Launch Process does not exit but remain in a suspended state , the output is below
(jde-dbo-message
5 "Launched VM Java Debug Interface (Reference Implementation) version
1.0
Java Debug Wire Protocol (Reference Implementation) version 1.0
JVM Debug Interface version 1.0
JVM version 1.2.2-RC2 (Classic VM, build 1.2.2-RC2-K, green threads,
nojit)")
(jde-dbo-command-result 11 1593)
(jde-dbo-event-set
5 "all"
(list "Thread" 1 "main" "waiting on monitor" "suspended by debugger")
(list 'jde-dbo-vm-start-event))
Any help in debugging this will be greatly appreciated.
I will provide any info you think that you need. I attached the
.emacs file to the message.
3) What is JMaker ? I have seen some settings about it .
It does not appear in my emacs frame.
Thanks,
Bogdan
(global-set-key "\C-]" 'blink-matching-open)
(global-set-key "\M-g" 'goto-line)
(put 'upcase-region 'disabled nil)
(setq load-path
(nconc '(
"/archive/programming/JDE/jde-latest/lisp" )
load-path))
(require 'jde)
;;(setq jde-use-font-lock nil)
(load "jde")
(setq jde-web-browser "/archive/HotJava/hotjava")
(setq jde-doc-dir "$JDK_HOME/docs/")
(jde-db-set-source-paths "/archive/java/Jagenda/")
(server-start)
;; Custom key bindings
;; Sort out BS/DEL probs
(global-unset-key [backspace] )
(global-set-key [backspace] 'delete-backward-char)
(global-unset-key [delete] )
(global-set-key [delete] 'delete-char)
;; Meta-key is mapped to the Left Windows key for WM use.
;; Remove conflicting Meta keys -- DOESN'T WORK
;; Ideally swapping Meta and Alt would be better - but how?
;(global-unset-key [M-left] )
;(global-unset-key [M-right] )
;(global-unset-key [C-M-delete] )
;(global-unset-key [M-x] )
;; Add Alt keys
(global-set-key [A-x] 'execute-extended-command )
(global-set-key [C-A-backspace] 'backward-kill-sexp )
(global-set-key [A-left] 'backward-word )
(global-set-key [A-right] 'forward-word )
;; These really need to be in jde-mode only
(global-set-key [f5] 'jde-bug-step-over )
(global-set-key [f6] 'jde-bug-step-into )
(global-set-key [f7] 'jde-bug-step-out )
(global-set-key [f8] 'jde-bug-continue )
;; Add search paths for elisp packages
(setq load-path (cons "/archive/programming/JDE/jde-latest/lisp" load-path))
(setq load-path (cons "/archive/programming/JDE/eieio-0.14.1" load-path))
(setq load-path (cons "/usr/share/emacs/site-lisp" load-path))
;; Turn highlighting on
(global-font-lock-mode)
;; Highlighting for idl
;(require 'idl-font-lock)
;; Add wheel mouse support
;(require 'mwheel)
;; Add auto-modes
(setq auto-mode-alist
(append '(("\\.java$" . jde-mode)
("\\.todo$" . todo-mode)
("\\.[hg]s$" . haskell-mode)
("\\.hi$" . haskell-mode)
("\\.l[hg]s$" . literate-haskell-mode)
("\\.g$" . antlr-mode)
) auto-mode-alist))
;; Add autoload modes
(autoload 'jde-mode "jde" "Java Development Environment." t)
(autoload 'todo-mode "todo" "Mode for editing a TODO list." t)
(autoload 'multi-mode "multi-mode" "Allow multiple major modes in a buffer." t)
(autoload 'haskell-mode "haskell-mode" "Haskell script mode." t)
(autoload 'literate-haskell-mode "haskell-mode" "Literate-Haskell mode." t)
(autoload 'antlr-mode "antlr-mode" "ANTLR grammar mode." t)
(add-hook 'haskell-mode-hook 'turn-on-haskell-font-lock)
(add-hook 'haskell-mode-hook 'turn-on-haskell-decl-scan)
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
(add-hook 'haskell-mode-hook 'turn-on-haskell-hugs)
;; Emacs/W3 Configuration
; (condition-case () (require 'w3-auto "w3-auto") (error nil))
;; Speedbar
(autoload 'speedbar-frame-mode "speedbar" "Popup a speedbar frame" t)
(autoload 'speedbar-get-focus "speedbar" "Jump to speedbar frame" t)
(define-key-after (lookup-key global-map [menu-bar tools])
[speedbar] '("Speedbar" . speedbar-frame-mode) [calendar])
;; Stuff for JDE
;(require 'jsee)
;(require 'jdok)
;(require 'jmaker)
;(require 'jpack)
;(defun javadoc-mode () (interactive)
; (multi-mode 1
; 'jde-mode
; '("/***" html-mode)
; '("*/" jde-mode)))
;(setq auto-mode-alist
; (cons '("\\.java$" . javadoc-mode)
; auto-mode-alist))
(custom-set-variables
'(jde-run-option-properties (quote (("java.compiler" . "NONE"))))
'(url-be-asynchronous t)
'(ps-print-only-one-header t)
'(ps-top-margin 24)
'(jde-compile-option-depend t)
'(ps-header-offset 18)
'(jde-help-docsets (quote (("javadoc" "/usr/local/jdk1.2/docs/" nil))))
'(jde-run-applet-viewer "appletviewer")
'(jde-bug-jre-home "/usr/local/jdk1.2/jre")
'(jde-compile-option-debug (quote ("all" (t t nil))))
'(jde-compile-option-target (quote ("1.2")))
'(jde-bug-server-socket (quote (t . "2112")))
'(ps-left-margin 24)
'(jde-bug-debug t)
'(jde-compile-option-depend-switch (quote ("-Xdepend")))
'(url-privacy-level (quote (os agent)))
'(jde-compile-option-sourcepath (quote ("/archive/java/Jagenda")))
'(w3-use-terminal-glyphs t)
'(jde-db-option-classpath (quote
("/archive/programming/jde-latest/java/lib/jde.jar")))
'(ps-number-of-columns 2)
'(w3-do-incremental-display t)
'(comint-input-ignoredups t)
'(jde-bug-jdk-directory "/usr/local/jdk1.2")
'(jde-build-use-make t)
'(jde-quote-classpath nil)
'(ps-landscape-mode t)
'(jde-run-read-app-args t)
'(jde-db-source-directories (quote ("/archive/java/Jagenda/"
"/usr/local/jdk1.2/src/")))
'(jde-db-set-initial-breakpoint t)
'(ps-paper-type (quote a4) t)
'(jde-jdk-doc-url "file:/usr/local/jdk1.2/docs/index.html")
'(jde-db-debugger (quote ("jdebug" . "Class")))
'(w3-notify (quote newframe))
'(jde-global-classpath (quote ("/archive/java/Jagenda" "/usr/local/antlr"
"/archive/java/Jagenda/browser/icebrowserbean.jar"
"/archive/java/jini/jini1_0/lib/sun-util.jar"
"/archive/java/jini/jini1_0/lib/jini-core.jar"
"/archive/java/jini/jini1_0/lib/jini-ext.jar" "/usr/local/jdk1.2/lib/dt.jar")))
'(ps-inter-column 24)
'(jde-db-read-app-args t)
'(jde-bug-jpda-directory "/usr/local/jdk1.2")
'(ps-right-margin 24)
'(delete-selection-mode nil nil (delsel))
'(vc-default-init-version "0.1")
'(ps-header-line-pad 0.1)
'(ps-bottom-margin 24)
'(scroll-bar-mode (quote right))
'(w3-use-terminal-characters t))
(custom-set-faces)
(defconst my-c-style
'((c-tab-always-indent . 0)
(c-basic-offset . 2)
(c-comment-only-line-offset . 0)
(c-offsets-alist . ((statement-block-intro . +)
(substatement-open . 0)
(block-open . 0)
(inline-open . 0)
(label . 0)
(statement-cont . +)
(case-label . +)
(access-label . -)
(inclass . ++)
))
)
"My C Programming Style")
;; Customizations for all of c-mode, c++-mode, and objc-mode
(defun my-c-mode-common-hook ()
(c-add-style "personal" my-c-style t)
(setq tab-width 2
;; this will make sure spaces are used instead of tabs
indent-tabs-mode nil)
)
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
;;=============================================================================
;; scroll on mouse wheel
;;=============================================================================
;; scroll on wheel of mouses
;(define-key global-map 'button4
;'(lambda (&rest args)
;(interactive)
;(let ((curwin (selected-window)))
;(select-window (car (mouse-position)))
;(scroll-down 5)
;(select-window curwin)
;)))
;(define-key global-map [(shift button4)]
;'(lambda (&rest args)
;(interactive)
;(let ((curwin (selected-window)))
;(select-window (car (mouse-position)))
;(scroll-down 1)
;(select-window curwin)
;)))
;(define-key global-map [(control button4)]
;'(lambda (&rest args)
;(interactive)
;(let ((curwin (selected-window)))
;(select-window (car (mouse-position)))
;(scroll-down)
;(select-window curwin)
;)))
;(define-key global-map 'button5
;'(lambda (&rest args)
;(interactive)
;(let ((curwin (selected-window)))
;(select-window (car (mouse-position)))
;(scroll-up 5)
;(select-window curwin)
;)))
;(define-key global-map [(shift button5)]
;'(lambda (&rest args)
;(interactive)
;(let ((curwin (selected-window)))
;(select-window (car (mouse-position)))
;(scroll-up 1)
;(select-window curwin)
;)))
;(define-key global-map [(control button5)]
;'(lambda (&rest args)
;(interactive)
;(let ((curwin (selected-window)))
;(select-window (car (mouse-position)))
;(scroll-up)
;(select-window curwin)
;)))
;
;(cond ((fboundp 'global-font-lock-mode)
; ;; Turn on font-lock in all modes that support it
; (global-font-lock-mode t)
; ;; Maximum colors
; (setq font-lock-maximum-decoration t)
; ;; Customize face attributes
; (setq font-lock-face-attributes
; ;; Symbol-for-Face Foreground Background Bold Italic Underline
; '((font-lock-comment-face "DarkGreen")
; (font-lock-string-face "Sienna")
; (font-lock-keyword-face "RoyalBlue")
; (font-lock-function-name-face "DarkGray")
; (font-lock-variable-name-face "DarkGray")
; (font-lock-type-face "Blue")
; (font-lock-reference-face "Purple")))
; ;; Create the faces from the attributes
; (font-lock-make-faces)))
;;(cond ((fboundp 'global-font-lock-mode)
;; Turn on font-lock in all modes that support it
;;(global-font-lock-mode t)
;; Maximum colors
;;(setq font-lock-maximum-decoration t)))
