Aujourd'hui j'ai du debug un bout d'app Java bien ancienne. Toujours du pur bonheur, ça me rappelle le Master :)
Bon, c'est bien comme je pensais, ça ne sert plus à grand chose en 2016.
JBoss provides a simple command line tool that allows for interaction with a remote JMX server instance. This tool is called twiddle (for twiddling bits via JMX) and is located in the bin directory of the distribution. Twiddle is a command execution tool, not a general command shell.
framework java utilisé pour le projet en RIE
'Saying that Java is nice because it works on every OS is like saying that anal sex is nice because it works on every gender.'
LOL via Skunnyk
Comment créer un script d'init pour une application java.
EDIT : ce truc n'a pas marché pour moi :
s=ps -C 'java -jar /path/to/application.jar' -o pid h
Du coup, j'ai remplacé par :
s=$(pgrep --full 'une string unique qui identifie la command line pour lancer mon jar')
#
#
#
check_status() {
s=ps -C 'java -jar /path/to/application.jar' -o pid h
if [ $s ] ; then
return $s
fi
return 0
}
start() {
check_status
pid=$?
if [ $pid -ne 0 ] ; then
echo "The application is already started"
exit 1
fi
echo -n "Starting application: "
java -jar /path/to/application.jar >> /path/to/logfile 2>&1 &
echo "OK"
}
stop() {
check_status
pid=$?
if [ $pid -eq 0 ] ; then
echo "Application is already stopped"
exit 1
fi
echo -n "Stopping application: "
kill -9 $pid &
echo "OK"
}
status() {
check_status
if [ $? -ne 0 ] ; then
echo "Application is started"
else
echo "Application is stopped"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart|reload)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0
Tool pour monitorer des values exposées en jmx
$>beans
$>bean java.lang:name=G1\ Eden\ Space,type=MemoryPool
$> info
$> get XXX
echo "beans" | java -jar jmxterm-1.0-alpha-4-uber.jar --url localhost:9010 -n|grep -i garbage
echo "get -b java.lang:type=Memory HeapMemoryUsage" | java -jar jmxterm-1.0-alpha-4-uber.jar --url localhost:9010 -n
echo "get -b java.lang:name=G1\ Eden\ Space,type=MemoryPool CollectionUsage" | java -jar jmxterm-1.0-alpha-4-uber.jar --url localhost:9010 -n
or use input file
pid=$(ps...)
java -jar jmxterm-1.0-alpha-4-uber.jar -n <<EOF
open $pid
beans
EOF
ArrayList<DeviceId> reslist = new ArrayList<DeviceId>();
reslist.add....
return reslist.toArray(new DeviceId[reslist.size()]);
Comment empecher le browser de mettre en cache le contenu d'une response.
How to run a jar the daemon way under linux
Comment créer un timestamp de l'heure actuelle en Java
type "netstat -a -n -o" to find out which PID is using this port. Then find the PID in the TaskManager... Then kill the process :)
Enoncé du TP
Ce programme ressemblera à un système de chat transposé à la voix. Chaque usager dispose du même programme. Une fois lancé on doit être en mesure de recevoir les demandes de dialogue qui seront présentées dans une fenêtre sous la forme d'une liste.
Une demande de dialogue est caratérisée par quelques informations d'identification (NOM, PRENOM, @IP, ...), et par les caractéristiques du son attendu (paramètres sons).
L'usager choisit une demande dans la liste et l'accepte.
A partir de ce moment deux canaux audio sont construits pour permettre un dialogue full duplex :
Une deuxième liste montrera les communications en cours, les demandes disparaissent de la prmière liste.
Un bouton "fin" permettra d'interrompre la communication. Le système devra permettre de gérer plusieurs communications simultanéments, soit en alternance soit en parallèle. Pour cela des boutons "Pause/reprise" seront introduits. Dans le cas du traitement en parallele et pour éviter d'être envahi par un locuteur jugé un peu trop "bavard", l'usager pourra à tout moment couper un canal actif ceci sans que son vis-à-vis ne s'en rende compte, on coupe la transmission sur le haut parleur.
Afin d'optimiser la bande passante un algorithme de compression sera mis en place. On utilisera pour cela la technologie SPEEX. Opensource SPEEX est particulièrement adaptée au transport de la voix.
On traitera la question des silences audio, de telle sorte que quand les interlocuteurs ne parlent pas aucun paquets n'est transmis.
Pour gérer les demandes de communication on utilisera un canal TCP, et pour transporter les flux audio on utilisera des canaux UDP.
Livrable :
Délai : fin Juin, vous prendrez rendez vous sur un sondage qui sera publié ultérieurement.
Presentation des buffer en java du package nio
Bon cours simple sur socket, voir partie UDP
Java : Comment itérer sur une hashmap
Map<String, String> items = new HashMap<String, String>();
//fill map with String, String values
…
for (Map.Entry<String,String> entry : items.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
//do stuff here
}