Unnikked - Esperienze personali in campo informatico

Compilare ed eseguire script java direttamente da gEdit

A volte trovo molto utile usare un semplice editor di testo per modificare e sviluppare piccoli script invece di usare un IDE molto complesso, se da una parte gli IDE portano vantaggi sulla produttività di grossi progetti, dall’altra usare un IDE in un contesto “casereccio” può risultare molto scomodo.

Utilizzare invece un editor di testo come gEdit per piccoli progetti o comunque per progetti che non richiedono strumenti avanzati di produzione, debugging e deploying, può risultare utile non solo per la loro semplicità d’utilizzo ma anche per l’ interfaccia poco invasiva e la leggerezza per consumo di risorse.

Però nonostante tutto ci sono alcune attività, quali compilazione ed esecuzione degli script, che potrebbero risultare molto ripetitive e macchinose; gEdit presenta al suo interno un sistema che permette di automatizzare alcune operazioni di routine come la compilazione e l’esecuzione di un programma.

Da questa necessità ho girato un po’ nella rete e ho trovato questo utilissimo script da configurare con gEdit che permette di automatizzare tale operazioni.

#!/bin/sh

cd $GEDIT_CURRENT_DOCUMENT_DIR

python -c "
import os

arg = '$GEDIT_CURRENT_DOCUMENT_DIR/$GEDIT_CURRENT_DOCUMENT_NAME'
package = ''
data = open(arg, 'r').readlines()

for i in range(len(data)):
	temp = data[i].strip()
	if temp[0:7] == 'package':
		package = temp[8:len(temp)-1]

if package != '':
	for i in range(package.count('.') + 2):
		arg = arg[0:arg.rfind('/')]

	os.system('javac -cp ' + arg + ' ' + '$GEDIT_CURRENT_DOCUMENT_DIR/$GEDIT_CURRENT_DOCUMENT_NAME')
	os.system('java -classpath ' + arg + ' ' + package + '.' + '${GEDIT_CURRENT_DOCUMENT_NAME%.java}')
else:
	os.system('javac $GEDIT_CURRENT_DOCUMENT_NAME')
	os.system('java ${GEDIT_CURRENT_DOCUMENT_NAME%.java}')
"

Nota: per poter utilizzare questo snippet bisogna aver installato python 

Apriamo gEdit e dalla barra dei menu ci spostiamo in Tools -> Manage External Tools… (assicuratevi di aver attivato il plugin dalle preferenze del programma)*

External Tools

In questa finestra clicchiamo sul pulsante + situato in basso a sinistra, ci verrà chiesto di inserire un nome al comando. Nel box Edit inserite lo script e configurate il comando come più preferite.

Inoltre questo script gestisce automaticamente il classpathdei package senza la necessità di configurare variabili d’ambiente.