Null.point.exception when executing method of another class

0

I'm running this code:

run class

package aloiexecv2;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 *
 * @author root
 */
public class test {

    private static Variaveis variaveis;
    private static Dados dados;
    private static Cadastrar cadastrar;

    public static void main(String[] args) throws FileNotFoundException, IOException {
        int opcao;
        System.out.println("\n----------CADASTRO DE ROTINAS DE INICIALIZAÇÃO----------");
        System.out.println("Neste script você pode adicionar comandos para inicializar rotinas (no formato: startx ou xcalic -c) ou");
        System.out.println("Pode acrescentar o atalho para um programa que será executado (no formato: /home/usuario/programa)");
        System.out.println("Escolha sua opção:");
        System.out.println("1) Cadastrar rotina ou programa");
        System.out.println("2) Excluir script");
        System.out.println("3) Pré-visualizar arquivo do incialização");
        System.out.println("4) Sair");
        opcao = Variaveis.getENTRADA().nextInt();
        if (opcao >= 1 && opcao <= 4) {
            **cadastrar.CadRotina(opcao);**

        } else {
            System.out.println("Opcao inválida! Digite novamente");
        }
    }

}

Class Method Register:

public void CadRotina(String arquivo, String texto, int opcao) throws FileNotFoundException, IOException {
    this.arquivo = arquivo;
    this.texto = texto;
    this.opcao = opcao;
    dados.gravarNoArquivo(arquivo, texto);
}
public void CadRotina(int opcao2) throws FileNotFoundException, IOException {
    this.opcao = opcao2;
    switch (opcao2) {
        case 1:
            if (arquivo == null) {
                System.out.println("\n----------INFORMANDO AS ROTINAS DE INICIALIZAÇÃO----------");
                System.out.println("Cadastre primeiramente o nome do arquivo que recebera as rotinas");
                this.arquivo = Variaveis.getENTRADA().nextLine();
                System.out.println("Agora, informe o caminho do script que devera ser executado automaticamente(Ex.: /home/scriptinternet: \n Ou adicione uma linha de comando (ex. xcalib - c)");
                this.texto = Variaveis.getENTRADA().nextLine();
                dados.gravarNoArquivo(arquivo, texto);

            }
    }
}

And it has the following error:

  

Exception in thread "main" java.lang.NullPointerException at   aloiexecv2.test.main (test.java:34)   /root/.cache/netbeans/8.2/executor-snippets/run.xml:53: Java returned:   1 BUILD FAILED (total time: 3 seconds) **

Line 34 refers to the CadRotina(opcao) method. Apparently java is saying that the method is empty, but I already tested the option variable and it is being set to Scanner .

I made a method overload so that I could use Cadet for both the variable option and direct execution (save file, text).

I do not understand why it does not execute. Can someone help me?

    
asked by anonymous 01.07.2017 / 23:57

1 answer

0

1) Use the reference instead of the type:

opcao = Variaveis.getENTRADA().nextInt(); 

Switch By:

opcao = variaveis.getENTRADA().nextInt();

2) Static does not generate object:

private static Variaveis variaveis;
private static Dados dados;
private static Cadastrar cadastrar;

Switch By:

private Variaveis variaveis;
private Dados dados;
private Cadastrar cadastrar;
    
03.07.2017 / 07:53