vendredi 21 mai 2010

ジャバの骨1課 : Error: could not open `...\Java\lib\i386\jvm.cfg'

Etant en plein bidouillage avec Java j'ai installé entre autres Eclipse qui a déjà eu l'occasion d'être pour moi un partenaire de choix lors de petits projets du temps de mes études (Un projet de fin d'année et un outil de travail à la maison pour refaire mes TP/TD Java). Bref, j'ai déjà explorer quelque peu Java mais dans le premier cas c'était from scratch, c'est-à-dire qu'on m'avait lâché un projet en Java alors que je n'avais jamais appris le Java auparavant... -_-
Bref je m'en suis plus ou bien moins sorti (merci au boulet qui a prétendu finir sa parti de projet en 2 temps 3 mouvements et qui a en fait foutu un boxon tel que les autres membres du groupe se son vu en mauvaise position le jour de l'oral dont moi. On avait testé nos programmes la veille tout marchait bien et le jour du passage... Hein !? Mais?!... xD ).
Pour faire court j'ai envie de :
  1. mieux comprendre la syntaxe de base de Java. Pas foutu de déclarer un tableau en Java. ;)
  2. mettre en pratique ce que j'ai pu apprendre.
  3. avancer, apprendre d'autres choses, faire de Java un langage où je me sentirais en confiance.
    Inutile de vous dire que si vous me demander de faire une appli je ne me sentirais pas prêt même si je connais les principes généraux de la programmation.
 Bref, revenons en au but de ce topic.
Comme je l'ai dis j'ai installé Eclipse et dernièrement j'ai voulu utiliser Javadoc pour le fun de tester. Javadoc est un outil fourni dans le JDK de Java, or au départ je n'ai pas insisté pour installer le JDK parce que le JRE était déjà installé. J'étais de toute évidence plus intéressé par la programmation de petites appli histoire de me remettre en forme que je m'amuser à générer une Javadoc mais la curiosité faisant les choses je me suis senti l'envie d'essayer. Il m'a fallu donc installer le JDK ce qui a donc fini par une désinstallation du JRE et une installation du JDK. Malheureusement une fois sous Eclipse je recevait un message d'erreur bizarre.

java.lang.NoClassDefFoundError: com/sun/tools/javadoc/Main 
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javadoc.Main 
 at java.net.URLClassLoader$1.run(Unknown Source) 
 at java.security.AccessController.doPrivileged(Native Method) 
 at java.net.URLClassLoader.findClass(Unknown Source) 
 at java.lang.ClassLoader.loadClass(Unknown Source) 
 at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
 at java.lang.ClassLoader.loadClass(Unknown Source) 
Exception in thread "main" Could not find the main class: com.sun.tools.javadoc.Main.  Program will exit.

Je ne voyais pas d'où ça pouvait venir et en installant le JDK sur une autre machine c'est passé comme dans du beurre.
Une réinstallation n'ayant rien changé au problème jusque au moment où je décide de nettoyer les traces du logiciel (registre, fichiers restants,...) et là en tapant java dans l'invite de commande :

C:\Documents and Settings\EminoMeneko>java
Error: could not open `C:\Program Files\...\Java\lib\i386\jvm.cfg'


Ben dis donc ?! Qu'est-ce que c'est que ça ?
J'ai pas touché au %PATH% vu que je comptais utiliser le même mais je ne m'attendais pas à une erreur de ce type là.
Après une petite séance de Googleage je tombe sur divers forum où on incendie le gars (qui a le même souci que moi) en le prenant limite pour un débile et en proposant tout et n'importe quoi. et un site où une personne propose une réponse courte, simple mais efficace.
Vous l'avez compris, le but de ce topic est donc de garder une trace de cette solution qui concerne l'environnement Java sous Windows. Je copie le contenu du message intéressant ici dans un but de pérennité mais je laisse le lien de la source plus bas. :)
I was also facing the same problem
I was trying to install java 6 using the exe available and after that i tried to uninstall.I was facing the same issue

Even if you set the path the classpath properly in envirinment variables it might not work

There are two ways of solcing this problem
1) to set the path and classpath variable in command prompt and start eclipse from the same command prompt

2)There will be three exe files in the location C:\WINDOWS\system32\.They are java.exe,javaw.exe,javaws.exe.Delete those and start eclipse normally

It is working for me

It can be
that
Source.
Bref, c'est un peu balo de proposer une solution Windows à une question qui concerne Ubuntu mais ça m'a bien aidé et j'ai pas eu 50 ans à passer à chercher la solution. Court, simple mais efficace : tout ce que j'aime !

J'ai choisi l'option 2, Eclipse redémarre bien (parce qu'il ne voulais plus démarrer entre temps), Visual Editor ne me sort plus des messages barbares et la génération du Javadoc se porte comme un charme.

Je pourrais aussi mettre une petite note sur la manière d'installer Java en system-wide sous Linux comme memento mais depuis que j'ai réussi je ne l'ai pas fait souvent et je ne me souviens plus trop de la manière de faire. Vaguement je me souviens que le fichier installe Java mais que si ont veut le faire marcher il faut définir le $path pour Java et j'ai du faire ça dans mon bashrc donc ça doit se trouver dans le précédent topic sur les fichiers de config Linux.

Voilà. Bon ben moi je vais coder un peu. :)

vendredi 7 mai 2010

思い出せ!

Je regardais mes bonnes vieilles photos et mon sujet de prédilection c'est : Mes chattes ! :)
Je vérifiais juste que les photos étaient bien orientées et hop je retombe sur une vieillerie qui me fait toujours autant d'effet. :D


C'est pas excellent ça ?
En principe on se mettait à table et j'étais sur le point de le faire quand soudain... Ma petite fifille chérie se dresse à ma place genre c'est son plat à elle. xD Et cette expression sur son visage ! je comprend bien que j'ai pu vouloir immortaliser un truc pareil. Le seul regret c'est que dans l'empressement la photo est un peu floue.

Qui aurait pu oser dire que le faciès des chats n'a pas d'expression ?!
La preuve en image. Ça devrait rappeler des choses aux fans de manga et autres anime japonais.


Y'a pas comme un air blasé genre de dire "T'ena pas marre de te payer ma tronche avec ta vieille ficelle ?".

..
Pas mal la patte qui pendouille comme ça... xD


C'est pas magnifique tout ça ?


Et puis ça c'est mon nouveau petit bonheur ! :)
Elle était abandonnée des pauvres cons ont pris la mère et abandonnées les petits... >:{
J'en ai récupéré un et les autres ont été placés via une asso. qui s'occupe de chats. :)


Toujours ce fameux mode crevette si cher aux chats. C'est entre autre pourquoi il m'arrive d'appeler le plus agée des deux Ebi au lieu de Emi (Vous aurez devinés la signification du mot Ebi en japonais.).


Et en plus ça tient dans la main ! xD Kro meugnon ! =3


Ça demande des câlins dès leur plus jeune âge.


Et le comité d'accueil à mon retour du japon. Ça fait chaud au cœur de retrouver ses petits baby qu'on avait pas vu pendant des semaines !

D'ailleurs au début c'était un peu chaud entre elles. La plus âgée qui refusait la plus jeune au point où elles étaient séparées au début et elles ont été mises en contact au-fur-et-à-mesure...


...jusqu'au moment où l'équilibre entre le Yin et le Yang a permit une vie en parfaite harmonie ! =D
Bref il se fait super tard. Mais se regarder une nouvelle fois des photos de mes petites chattes, moi j'adore. :)
Pour info, j'ai plus de 2400 photos pour 1,2 G de données. Va falloir  cravacher sec pour avoir 4,7 de photos et faire un DVD !

May the neko be with you !

jeudi 29 avril 2010

LINUX : Mes fichiers de config. part 1

Bon alors c'est simple. J'ai envie de garder une trace de certains fichiers de config et j'utilise ce blog pour le faire.

On commence par /etc/bash.bashrc


# System-wide .bashrc file for interactive bash(1) shells.

# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, overwrite the one in /etc/profile)
#PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

########
COLOR_RED="\[\e[31;40m\]"
COLOR_GREEN="\[\e[32;40m\]"
COLOR_YELLOW="\[\e[33;40m\]"
COLOR_BLUE="\[\e[34;40m\]"
COLOR_MAGENTA="\[\e[35;40m\]"
COLOR_CYAN="\[\e[36;40m\]"

COLOR_RED_BOLD="\[\e[31;1m\]"
COLOR_GREEN_BOLD="\[\e[32;1m\]"
COLOR_YELLOW_BOLD="\[\e[33;1m\]"
COLOR_BLUE_BOLD="\[\e[34;1m\]"
COLOR_MAGENTA_BOLD="\[\e[35;1m\]"
COLOR_CYAN_BOLD="\[\e[36;1m\]"

COLOR_NONE="\[\e[0m\]"

promptFunc()
{
    PREV_RET_VAL=$?;
    PS1=""
   
    if test `whoami` != "root"
    then
        PS1="${debian_chroot:+($debian_chroot)}${COLOR_BLUE_BOLD}\u@${COLOR_GREEN_BOLD}\h${COLOR_NONE}:${COLOR_BLUE_BOLD}\w${COLOR_NONE}"
    else
        PS1="${debian_chroot:+($debian_chroot)}${COLOR_RED_BOLD}\u@${COLOR_GREEN_BOLD}\h${COLOR_NONE}:${COLOR_RED_BOLD}\w${COLOR_NONE}"
    fi

    #PS1="${PS1}"

    if test $PREV_RET_VAL -eq 0
    then
        PS1="${PS1}${COLOR_GREEN_BOLD}\\$ ${COLOR_NONE}"
    else
        PS1="${PS1}${COLOR_RED_BOLD}\\$ [Valeur de retour : ${PREV_RET_VAL}] ${COLOR_NONE}"
    fi
}

PROMPT_COMMAND=promptFunc


# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
#    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
#    ;;
#*)
#    ;;
#esac

# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ]; then
#    . /etc/bash_completion
#fi

# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found ]; then
    function command_not_found_handle {
            # check because c-n-f could've been removed in the meantime
                if [ -x /usr/lib/command-not-found ]; then
           /usr/bin/python /usr/lib/command-not-found -- $1
                   return $?
        else
           return 127
        fi
    }
fi
[[ -f "/etc/autopackage/paths-bash" ]] && . "/etc/autopackage/paths-bash"


On continue avec /etc/ntp.conf

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift


# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable


# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example

# pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
# pick a different set every time it starts up.  Please consider joining the
# pool:
server 0.debian.pool.ntp.org iburst dynamic


# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust


# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines.  Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient
server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
server 1.debian.pool.ntp.org
server 2.debian.pool.ntp.org
server 3.debian.pool.ntp.org
server canon.inria.fr
server chronos.cru.fr
server ntp.cs.strath.ac.uk
server bernina.ethz.ch
server ntps1-1.cs.tu-berlin.de
server ntps1-0.cs.tu-berlin.de
server ntps1-2.uni-erlangen.de
server time.ien.it
server ntp0.nl.net
server ntp1.nl.net
server ntp2.nl.net
server ntp.certum.pl
server vega.cbk.poznan.pl
server ntp2.ja.net
server ntpa2.kph.uni-mainz.de
server ntp.univ-lyon1.fr


Alors bon il faut encore s'assurer que l'heure reste corrècte. Normalement une contrôle de l'heure une fois par jour voir par semaine ou même moins suffit mais mon Ordi déconne grave et il perd sans cesse l'heure juste quand bien même il est en fonction !
Pour ça j'ai planifié une commande avec Crontab sur le compte Root. Tout simplement celle qui permet la synchronisation avec un serveur NTP.

# m h  dom mon dow   command
0 * * * * /usr/sbin/ntpdate -u 0.fr.pool.ntp.org


On continue avec /home/moncompte/.bashrc

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
export HISTCONTROL=ignoredups

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

########
COLOR_RED="\[\e[31;40m\]"
COLOR_GREEN="\[\e[32;40m\]"
COLOR_YELLOW="\[\e[33;40m\]"
COLOR_BLUE="\[\e[34;40m\]"
COLOR_MAGENTA="\[\e[35;40m\]"
COLOR_CYAN="\[\e[36;40m\]"

COLOR_RED_BOLD="\[\e[31;1m\]"
COLOR_GREEN_BOLD="\[\e[32;1m\]"
COLOR_YELLOW_BOLD="\[\e[33;1m\]"
COLOR_BLUE_BOLD="\[\e[34;1m\]"
COLOR_MAGENTA_BOLD="\[\e[35;1m\]"
COLOR_CYAN_BOLD="\[\e[36;1m\]"

COLOR_NONE="\[\e[0m\]"

#promptFunc()
#{
#    PREV_RET_VAL=$?;
#    PS1=""
#   
#    if test `whoami` != "root"
#    then
#        PS1="${debian_chroot:+($debian_chroot)}${COLOR_BLUE_BOLD}\u@${COLOR_GREEN_BOLD}\h${COLOR_NONE}:${COLOR_BLUE_BOLD}\w${COLOR_NONE}"
#    else
#        PS1="${debian_chroot:+($debian_chroot)}${COLOR_RED_BOLD}\u@${COLOR_GREEN_BOLD}\h${COLOR_NONE}:${COLOR_RED_BOLD}\w${COLOR_NONE}"
#    fi
#
#    #PS1="${PS1}"
#
#    if test $PREV_RET_VAL -eq 0
#    then
#        PS1="${PS1}${COLOR_GREEN_BOLD}\\$ ${COLOR_NONE}"
#    else
#        PS1="${PS1}${COLOR_RED_BOLD}\\$ [Valeur de retour : ${PREV_RET_VAL}] ${COLOR_NONE}"
#    fi
#}
########

# set a fancy prompt (non-color, unless we know we "want" color)
#case "$TERM" in
#xterm-color)
#    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#    ;;
#*)
#    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#    ;;
#esac

# Comment in the above and uncomment this below for a color prompt
#PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
#    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
#    ;;
#*)
#    ;;
#esac

#PROMPT_COMMAND=promptFunc

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

#if [ -f ~/.bash_aliases ]; then
#    . ~/.bash_aliases
#fi

# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
    eval "`dircolors -b`"
    alias ls='ls --color=auto'
    #alias dir='ls --color=auto --format=vertical'
    #alias vdir='ls --color=auto --format=long'
fi

# some more ls aliases
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

alias sauvegarde='rsync -ahv --stats --progress /home/eminomeneko/ /mnt/donnees/backup_Linux/'
function man2pdf()
{
    filename="$1"
    man -t ${filename} > man_${filename}.ps && ps2pdf man_${filename}.ps && rm -f man_${filename}.ps
}

export PATH=/usr/java/jre1.6.0_16/bin:$PATH


Voilà pour aujourd'hui