Per la generazione casuale dei numeri ti suggerisco di utilizzare la classe Random

codice:
import java.util.Random;

public class ...
. . .
Random random = new Random();

// CICLO 1
// CICLO 2

a[j][i] = random.nextInt(8);
. . .
In questo modo ti genererà numeri (pseudo)casuali compresi fra 0 e 7 inclusi. Non è chiaro se vuoi includere anche 8 come valore valido (in tal caso diventa .nextInt(9)), ma tieni presente che in ogni caso la tua (int)(Math.random() * 8) non ti restituirà mai 8.

Noto che nel codice c'è lo stesso errore ripetuto più volte: devi impostare le condizioni di uscita dei cicli con "minore" stretto, non "minore o uguale".

Per l'errore di esecuzione, in mancanza di informazioni più dettagliate sull'ambiente operativo, mi associo alla risposta di Lomio: hai impostato il percorso in cui eclipse si aspetta di trovare le classi di esecuzione?