Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts about Java.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
#   (find-eev-quick-intro)
#   http://angg.twu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/java.e>
#           or at <http://angg.twu.net/e/java.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######




# «.simple-programs»	(to "simple-programs")
# «.beanshell»		(to "beanshell")
# «.clojure»		(to "clojure")
# «.ditaa»		(to "ditaa")
# «.domino»		(to "domino")
# «.jasmin»		(to "jasmin")
# «.java-package»	(to "java-package")



# http://packages.debian.org/unstable/libs/sun-java5-jre
# http://www.debian.org/doc/manuals/debian-java-faq/ch5.html
# http://www.debian.org/doc/manuals/debian-java-faq/ch5.html#s-scsl
# http://www.debian.org/doc/manuals/debian-java-faq/ch5.html#s-license-concerns
# http://www.debian.org/doc/manuals/debian-java-faq/ch5.html#s-free
# http://www.debian.org/doc/manuals/debian-java-faq/ch11.html#s-swing-run
# http://www.debian.org/doc/manuals/debian-java-faq/index.html
# http://www.debian.org/doc/manuals/debian-java-faq/ch-browser-java.html

# http://wiki.debian.org/Java/MoveToMain
# http://wiki.debian.org/Java/AlreadyMovedToMain





# A note on demangling:
# http://www.debian.org/doc/manuals/debian-java-faq/ch-browser-java.html

* (eepitch-shell)

c++filt -s gnu __vt_17nsGetServiceByCID
  # \-> nsGetServiceByCID virtual table
objdump -R /usr/lib/libxpcom.so | grep nsGetServiceByCID
  # \-> 000ec114 R_386_GLOB_DAT _ZTV17nsGetServiceByCID
c++filt -s gnu-v3 _ZTV17nsGetServiceByCID
  # \-> vtable for nsGetServiceByCID




#####
#
# simple programs
# 2007nov20
#
#####

# «simple-programs»  (to ".simple-programs")
# http://en.wikipedia.org/wiki/Java_%28programming_language%29

* (eepitch-shell)
#*
rm -Rv /tmp/java/
mkdir  /tmp/java/
cd     /tmp/java/
cat > Hello.java <<'%%%'
// Hello.java
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
%%%
cat > OddEven.java <<'%%%'
// OddEven.java
import javax.swing.JOptionPane;
 
public class OddEven {
    private int input;
    public OddEven() {
    }
    public void showDialog() {
        input = Integer.parseInt(JOptionPane.showInputDialog("Please Enter A Number"));
    }
    public void calculate() {
        if (input % 2 == 0)
            System.out.println("Even");
        else
            System.out.println("Odd");
    }
    public static void main(String[] args) {
        OddEven number = new OddEven();
        number.showDialog();
        number.calculate();
    }
}
%%%

gcj       Hello.java    |& tee ogh
gcj -c -v Hello.java    |& tee ogch
gcj -c -v OddEven.java  |& tee ogcoe
laf

#*
# (find-fline "/tmp/java/")
# (find-fline "/tmp/java/ogh")
# (find-fline "/tmp/java/ogch")
# (find-fline "/tmp/java/ogcoe")



# A problem:

cat > Hello.java <<'%%%'
  // Hello.java
  public class Hello {
       public static void main(String[] args) {
         System.out.println("Hello, World!");
    }
  }
%%%
gcj Hello.java
  /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o: In function `_start':
  ../sysdeps/i386/elf/start.S:115: undefined reference to `main'
  collect2: ld returned 1 exit status






#####
#
# beanshell
# 2009jul20
#
#####

# «beanshell»  (to ".beanshell")
# (find-es "openoffice" "beanshell")
# (find-status   "bsh")
# (find-vldifile "bsh.list")
# (find-udfile   "bsh/")
# (find-status   "bsh-doc")
# (find-vldifile "bsh-doc.list")
# (find-udfile   "bsh-doc/")
# (find-udfile   "bsh-doc/html/")
# (find-udw3m "bsh-doc/html/index.html")
# (find-udw3m "bsh-doc/html/quickstart.html")

* (eepitch-bsh)
* (eepitch-kill)
* (eepitch-bsh)
foo = "Foo";
four = (2 + 2)*2/2;
print( foo + " = " + four );  // print() is a BeanShell command

// Do a loop
for (i=0; i<5; i++)
    print(i);

// Pop up a frame with a button in it
button = new JButton( "My Button" );
frame = new JFrame( "My Frame" );
frame.getContentPane().add( button, "Center" );
frame.pack();
frame.setVisible(true);





#####
#
# clojure
# 2010dec03
#
#####

# «clojure»  (to ".clojure")
# (find-es "clojure")
# (find-status   "clojure")
# (find-vldifile "clojure.list")
# (find-udfile   "clojure/")
# http://nakkaya.com/2010/12/02/a-simple-forth-interpreter-in-clojure/

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv   /tmp/clojure/
mkdir    /tmp/clojure/
unzip -d /tmp/clojure/ /usr/share/java/clojure-1.1.0.jar
cd       /tmp/clojure/
mv -v clojure/*.clj .
rm -Rv   /tmp/clojure/META-INF/
rm -Rv   /tmp/clojure/clojure/

# (code-c-d "clojure" "/tmp/clojure/")
# (find-clojurefile "")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
clojure -r

(ns forth
  (:refer-clojure :exclude [pop!]))

(declare forth-eval)

(defn pop! [stack]
  (let [first (first @stack)]
    (swap! stack pop)
    first))

(defn push! [stack item]
  (swap! stack conj item))

(defn next-token [stream]
  (if (. stream hasNextBigInteger)
    (. stream nextBigInteger)
    (. stream next)))

(defn init-env []
  (let [stream (java.util.Scanner. System/in)
        stack (atom '())
        dict (atom {})
        prim (fn [id f] (swap! dict assoc id f))]
    (prim ".s" #(do (println "---")
                    (doseq [s @stack] (println s))
                    (println "---")))
    (prim "cr" #(println))
    (prim "+" #(push! stack (+ (pop! stack) (pop! stack))))
    (prim "*" #(push! stack (* (pop! stack) (pop! stack))))
    (prim "/" #(let [a (pop! stack)
                     b (pop! stack)]
                 (push! stack (/ b a))))
    (prim "-" #(let [a (pop! stack)
                     b (pop! stack)]
                 (push! stack (- b a))))
    (prim "dup" #(push! stack (first @stack)))
    (prim "." #(println (pop! stack)))
    (prim ":" #(let [name (next-token stream)
                     block (loop [b [] n (next-token stream)]
                             (if (= n ";")
                               b
                               (recur (conj b n) (next-token stream))))]
                 (prim name (fn [] (doseq [w block]
                                     (forth-eval dict stack w))))))
    [dict stack stream]))

(defn forth-eval [dict stack token]
  (cond (contains? @dict token) ((@dict token))
        (number? token) (push! stack token)
        :default (println token "??")))

(defn repl [env]
  (let [[dict stack stream] env
        token (next-token stream)]
    (when (not= token "bye")
      (forth-eval dict stack token)
      (repl env))))

(repl (init-env))

5 6 + 7 8 + *
.
cr

3 2 1 + *
. cr

: sq dup * ;
2 sq
.

bye




# (find-fline "/usr/share/java/clojure-1.1.0.jar")
# (find-udfile "clojure/copyright")
# (find-udfile "clojure/readme.txt")
# (find-udfile "clojure/changelog.gz")
# (find-udfile "clojure/README.Debian")
# (find-udfile "clojure/changelog.Debian.gz")
# (find-man "1 clojurec")
# (find-man "1 clojure-repl")
# (find-man "1 clojure")
# (find-fline "/usr/bin/clojure")
# (find-fline "/usr/bin/clojure-repl")
# (find-fline "/usr/bin/clojurec")
# (find-fline "/usr/share/java/clojure.jar")
# (find-fline "/usr/share/maven-repo/org/clojure/clojure/debian/clojure-debian.jar")
# (find-fline "/usr/share/maven-repo/org/clojure/clojure/1.1.0/clojure-1.1.0.jar")



# http://nakkaya.com/2010/01/09/a-simple-turtle-graphics-implementation-in-clojure/
# http://nakkaya.com/code/clojure/turtle.clj
# (find-es "rubyforth")





#####
#
# ditaa
# 2011jan08
#
#####

# «ditaa»  (to ".ditaa")
# http://ditaa.sourceforge.net/

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
rm -Rv /tmp/ditaa/
mkdir  /tmp/ditaa/
cd     /tmp/ditaa/

rm -Rf ~/usrc/ditaa/
mkdir  ~/usrc/ditaa/
mkdir ~/usrc/ditaa/

rm -Rv ~/usrc/ditaa/
cd     ~/usrc/
svn co https://ditaa.svn.sourceforge.net/svnroot/ditaa ditaa
tar -cvzf ~/tmp/ditaa.tgz ditaa/

rm -Rv /tmp/ditaa/
mkdir  /tmp/ditaa/
cd     /tmp/ditaa/




#####
#
# Domino
# 2011oct20
#
#####

# «domino»  (to ".domino")
# http://en.wikipedia.org/wiki/Natural_deduction
# http://www.winterdrache.de/freeware/domino/
# http://nddomino.sourceforge.net/Domino.jar

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd $S/http/nddomino.sourceforge.net/
java -jar Domino.jar





#####
#
# Jasmin
# 2012jan23
#
#####

# «jasmin»  (to ".jasmin")
# (find-zsh "availabledebs | sort | grep jasmin")
# (find-status   "jasmin-sable")
# (find-vldifile "jasmin-sable.list")
# (find-udfile   "jasmin-sable/")
# (find-udfile "jasmin-sable/examples/ANewArray.j")

http://asm.ow2.org/




#####
#
# java-package
# 2015apr27
#
#####

# «java-package» (to ".java-package")
# (find-status   "java-package")
# (find-vldifile "java-package.list")
# (find-udfile   "java-package/")
# (find-zsh "installeddebs | sort | grep java")
# (find-zsh "availabledebs | sort | grep java")
# https://wiki.debian.org/JavaPackage
# https://wiki.debian.org/JavaPackage
# https://packages.debian.org/openjdk-7-jre
# https://packages.debian.org/openjdk-7-jdk
# https://packages.debian.org/sun-java6-jre
# https://packages.debian.org/sun-java6-jdk
# http://sylvestre.ledru.info/blog/2011/08/26/sun_java6_packages_removed_from_debian_u
# http://www.java.com/pt_BR/download/linux_manual.jsp?locale=pt_BR
# http://javadl.sun.com/webapps/download/AutoDL?BundleId=106238

# 2015apr30:
# http://ftp.debian.org/debian/pool/contrib/j/java-package/
# http://ftp.debian.org/debian/pool/contrib/j/java-package/java-package_0.56.dsc
# http://ftp.debian.org/debian/pool/contrib/j/java-package/java-package_0.56.tar.xz
# http://ftp.debian.org/debian/pool/contrib/j/java-package/java-package_0.56_all.deb

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-man "1 make-jpkg")
cd /tmp/
laf jre-8*
make-jpkg jre-8*
laf
sudo dpkg -i oracle-java8-jre*.deb

# (find-status   "oracle-java8-jre")
# (find-vldifile "oracle-java8-jre.list")
# (find-udfile   "oracle-java8-jre/")





The build system used is based on Make, not Gradle.  Gradle has the
nasty habit of automatically downloading software you did not ask for.

https://lists.gnu.org/archive/html/emacs-devel/2023-06/msg00368.html
https://en.wikipedia.org/wiki/Gradle

https://tonsky.me/blog/skija/ Graphics for JVM

https://blog.notroot.online/posts/blogging-with-emacs:-bells-and-whistles/ ditaa


libnpjp2.so
# (find-zsh "dmissing libnpjp2.so")
;; (find-status   "sun-java6-bin")
;; (find-vldifile "sun-java6-bin.list")
;; (find-udfile   "sun-java6-bin/")




#  Local Variables:
#  coding:               utf-8-unix
#  End: