Como eu complemento uma função de arquivo .java e leio arg a partir do linux de linha cmd? [fechadas]

0

Eu tenho uma função escrita em java para ler uma string e retornar os resultados processados.

Estou usando php e, em vez de reescrever a função java em php, gostaria de fazer uma chamada shell_exec e obter os resultados retornados de java via linha de comando no Linux.

Alguém poderia me ajudar?

    
por igtoth 18.01.2018 / 21:52

1 resposta

2

Como seu título também menciona a compilação, e enquanto eu estou supondo que você tenha o código-fonte java que você quer usar - eu imaginei que isso seria o mais completo possível, então eu também forneci o código fonte do exemplo.

a estrutura de diretórios para simplicidade é / mainTest, por exemplo root e uma pasta chamada mainTest. Nele é um arquivo de origem java chamado phpFunction.java

O código-fonte java é o seguinte

package mainTest;

public class phpFunction {

    public phpFunction() {

    }

    public static void main(String[] args) {
        //our input is a string, example "25", convert it into a number
        int inputArg1 = Integer.parseInt(args[0]);

        //will hold a value to be output
        int outputValue = -1;

        //call a method with our input
        outputValue= multiplyInput(inputArg1);

        //print the output to std out
        System.out.println(outputValue);

    }

    //simply multiplies the input value by 2, returns results
    private static int multiplyInput(int inputValue){
        return inputValue*2;
    }

}

O código fonte, conforme indicado nos comentários, simplesmente pega um único valor como entrada e multiplica por dois e envia os resultados para o padrão.

Para compilá-lo, você precisa ter certeza de ter o java jdk instalado, você pode verificar fazendo

locate javac

Se você não o tiver instalado, instale-o (você também pode compilar o código em outro lugar que possa tê-lo instalado)

No diretório raiz, execute

javac mainTest/phpFunction.java

Você vai acabar com um arquivo phpFunction.class no diretório mainTest

Para executá-lo como um teste

java -cp . mainTest/phpFunction 25

Onde 25 é o argumento que você quer passar, a saída será

$ java -cp . mainTest/phpFunction 25
50
    
por JGlass 18.01.2018 / 22:43