Como deixar o usuário definir a variável?

Por exemplo eu tenho um SCRIPT que tem a seguinte definição;

int idade = 18;

Minha pergunta é de modo posso fazer para quando eu chamar o programa esse SCRIPT com o java, ele deixe o usuário definir o valor da variável.

Na verdade quero que o programa fique “Quantos anos você tem?__” aí o usuário define

Como faço?

Cara pesquise aqui no GUJ por: Scanner teclado = new Scanner(System.in);

Garanto que ira lhe solucionar o seu problema.

Hail
Se vc estiver usando o console para leitura tente algo assim:

Scanner leitor = new Scanner(System.in); int idade; System.out.println("Quantos anos você tem?"); idade = leitor.NextInt();

Do jeito que os amigos falaram concerteza dará certo porém sua pergunta ficou meio confusa, vc quer fazer o programa em java? Ta montando um script de que vai importar um programa em java?
Existem mil formas de vc fazer esse programa em java , especifique melhor sua pergunta para que possamos lhe ajudar da maneira correta.

Pelo que entendi isso irá rodar na web?
O que é um script pra voce?
Um arquivo de Lote ( .BAT do windows), um ShellScript (*linux/unix) ?
Ou JavaScript, …

eu sou usuário Linux, e comecei a estudar java.

to desenvolvendo no terminal o código (tava me referindo como script) e to compilando ele com o javac.

Quero ao rodar o arquivo no terminal q ele interaja com o usuário, perguntando qual sua idade e armazene essa idade em uma variável.

não achei nada sobre isso ainda

a minha pergunta é, como eu faria pra receber algum dado do teclado e armazenar em alguma variavel?

procurei sobre a Classe SCANNER, mas tá complicado

Já deram a resposta:

// cria um Scanner que lerá dados do System.in
Scanner teclado = new Scanner(System.in);
// mostra a frase
System.out.print("Digite a sua idade: ");
// lê o valor e armazena numa variável
int idade = teclado.nextInt();

Use o scanner. Com relação a usa-lo no terminal é só utiliza o java para roda-lo. :slight_smile:
Se você não que ficar usando ‘java arquivo’ para rodar, então cria um scriptzinho em bash mesmo que faz esse chamado, dá permisão de execução para o script e colocar ele no PATH do teu Linux.
Assim você só chama o script que é encarregado de fazer a execução do ‘java arquivo’.

Agora ficou bem mais claro e podemos te ajudar melhor…em java vc pode usar a classe scanner então vou tentar te explicar como funciona para não ficar só no código…

Vou por o código aqui sem comentários e depois vou explicando cada linha…

import java.util.Scanner;

public class LendoDoTeclado
{
       public static void main(String args[])
       {
           Scanner entrada = new Scanner(System.in);
           int idade;
 
           System.out.print("Qual sua idade?");
           idade = entrada.nextInt();
           
           System.out.print("VC digitou" +idade);

           System.exit(0);
       }
}

Pronto agora vamos a explicação para ver se fica mais claro:

Na primeira linha:

import java.util.Scanner;

A primeira coisa a fazer é importar para o seu programa a classe Scanner atravéz da instrução acima o programa importa do pacote java.util a classe Scanner;

Depois normalmente eu declarei uma classe chamada LendoDoTeclado e declarei o método main;
Na linha seguinte:

Scanner entrada = new Scanner(System.in);

Essa instrução é facil de entender, pois lembra da classe Scanner?
declarei uma variavel de nome entrada do tipo Scanner;
Um Scanner permite o aplicativo ler dados, seja de um documento ou de algum outro lugar;
Antes de vc usar um Scanner vc deve crialo e tem que expecificar de onde será a leitura dos dados;
É isso que essa instrução faz, atribui à variável entrada do tipo Scanner o valor da expressão new Scanner(System.in), onde nessa parte acabamos de criar o objeto Scanner e especificamos que os dados a serem lidos são de System.in, que é o objeto de entrada padrão;
Assim como System.out é o objeto de saída padrão(Tela), System.in é um objeto de entrada padrão(teclado);
Então vc já sabe que essa instrução criou uma variavel entrada do tipo Scanner e que o valor com que ela foi iniciada é um valor digitado pelo usuário pelo teclado;
Então na linha seguinte criei uma variavel idade do tipo inteira né e na outra linha usamos o System.out.print para perguntar a idade para o usuário e na seguinte linha:

idade = entrada.nextInt();

Essa linha atribui um numero inteiro para a variavel idade por que utilizamos o metodo nextInt() do valor de entradado objeto Scanner, ou seja lembra que o Scanner que criamos le um dado do teclado então esse dado é lido e o metodo nextInt() espera que seja digitado um inteiro, claro que o usuario pode digitar qualquer coisa que teria que passar por um tratamento de erros mas supomos que ele digite mesmo um inteiro, então esse é atribuido para variável idade;
Daí pra frente é sem grilo, só exibi qual a idade dele denovo com o System.out e finalizei o programa.

Tentei ser o mais didático possível mais qualquer dúvida é só perguntar que estamos ae para tentar esclarecer.

Show, deu pra ver o quanto a comunidade é sensacional.

Consegui usar a classe Scanner, quando terminar o programinha que tô fazendo eu mostro a vcs

:lol:

Use a classe Console, ou se preferir o Scanner mesmo, use somente o método next ou nextLine. Ambos retornam uma String, que você deve converter para to tipo de dado que quer, por exemplo usando

Scanner in = new Scanner(System.in); String s = in.next(); int numero = Integer.parseInt(s);

O motivo disso é por quê misturando nextInt e next ele pode comer caracteres e pular uma próxima leitura.