Получите название переменной, как введено и замените переменную с тем именем

Это может быть связано с расположением файла.

Я бы сначала попробовал с фиксированным местоположением, просто чтобы убедиться, что оно работает.

Кроме того, убедитесь, что файл действительно находится внутри pth.

package javafxapplication1;

import java.io.File;
import java.io.IOException;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class JavaFXApplication1 extends Application {

    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                String exeM="/tmp/a.out";
                Runtime runtime=Runtime.getRuntime();
                String[] cmndM= {"/bin/sh","-c",exeM}; 
                Process pm=null; 
                File dirM=new File("/tmp");
                try {
                    pm=runtime.exec(cmndM, null, dirM);
                }catch (IOException e) {
                    System.out.println("Error");
                }
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
6
задан 16 December 2008 в 21:43
поделиться

2 ответа

У меня была флэш-память внезапно, спустя минуты после обращения за помощью, и я думаю, что у меня есть решение:

#!/bin/bash
variablename=$1
echo "The value of $variablename is: " ${!variablename}
echo "I will now try to change the value into $2."
eval "$variablename=$2"
echo "Success! $variablename now has the value ${!variablename}!"

Работает. Существует ли лучший путь?

7
ответ дан 10 December 2019 в 02:55
поделиться

Ваше решение будет работать, но переменная будет только иметь то значение в рамках Вашего сценария. Это не будет влиять на переменную приложения "вызова".

Когда Вы запускаете скрипт или программу, она порождает новую оболочку с копией среды. Это дизайном, таким образом, Ваш сценарий не изменяет вещи как PATH.

Если Вы хотите, чтобы Ваш сценарий смог изменить переменные среды для вызова, окружают Вас, должны также source scriptname или . scriptname. Это - то, как .bashrc работает.

2
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: