Using Java PrcoessBuilder to run Python remote file
I am trying to execute a python file (remote) using java Process builder with the following code.
List<String> commands = new ArrayList<String>();
commands.add("/bin/sh");
commands.add("-c");
commands.add(""python <(curl <remote python file>"");
ProcessBuilder builder = new ProcessBuilder(commands);
builder.redirectErrorStream(true);
and its giving
/bin/sh: python <(curl ): No such file or directory
Tried with command interpolation ($ in front of curl and python command is not wrapped around double quotes)
commands.add("/bin/sh");
commands.add("-c");
commands.add("python <$(curl <remote python file>)");
this is throwing
ambiguous redirect error
java processbuilder
add a comment |
I am trying to execute a python file (remote) using java Process builder with the following code.
List<String> commands = new ArrayList<String>();
commands.add("/bin/sh");
commands.add("-c");
commands.add(""python <(curl <remote python file>"");
ProcessBuilder builder = new ProcessBuilder(commands);
builder.redirectErrorStream(true);
and its giving
/bin/sh: python <(curl ): No such file or directory
Tried with command interpolation ($ in front of curl and python command is not wrapped around double quotes)
commands.add("/bin/sh");
commands.add("-c");
commands.add("python <$(curl <remote python file>)");
this is throwing
ambiguous redirect error
java processbuilder
The interpolated version is missing a closing paren
– Mad Physicist
Jan 19 at 6:55
I would surmise that it’s trying to execute “python <$(curl <remote python file>” as a single command (not a command as a command with parameters), I would seperate and use “<$(curl <remote python file>” as a seperate command
– MadProgrammer
Jan 19 at 6:55
my bad on closing parenthesis (its copy/paste issue)
– Nuthan Kumar
Jan 19 at 7:04
Separate command means download file to local and then running python? I am afraid this may not be possible in my case. This is a framework where users provide a string of command and Java code executes them (any shell command)
– Nuthan Kumar
Jan 19 at 7:06
add a comment |
I am trying to execute a python file (remote) using java Process builder with the following code.
List<String> commands = new ArrayList<String>();
commands.add("/bin/sh");
commands.add("-c");
commands.add(""python <(curl <remote python file>"");
ProcessBuilder builder = new ProcessBuilder(commands);
builder.redirectErrorStream(true);
and its giving
/bin/sh: python <(curl ): No such file or directory
Tried with command interpolation ($ in front of curl and python command is not wrapped around double quotes)
commands.add("/bin/sh");
commands.add("-c");
commands.add("python <$(curl <remote python file>)");
this is throwing
ambiguous redirect error
java processbuilder
I am trying to execute a python file (remote) using java Process builder with the following code.
List<String> commands = new ArrayList<String>();
commands.add("/bin/sh");
commands.add("-c");
commands.add(""python <(curl <remote python file>"");
ProcessBuilder builder = new ProcessBuilder(commands);
builder.redirectErrorStream(true);
and its giving
/bin/sh: python <(curl ): No such file or directory
Tried with command interpolation ($ in front of curl and python command is not wrapped around double quotes)
commands.add("/bin/sh");
commands.add("-c");
commands.add("python <$(curl <remote python file>)");
this is throwing
ambiguous redirect error
java processbuilder
java processbuilder
edited Jan 19 at 7:03
Nuthan Kumar
asked Jan 19 at 6:46
Nuthan KumarNuthan Kumar
16212
16212
The interpolated version is missing a closing paren
– Mad Physicist
Jan 19 at 6:55
I would surmise that it’s trying to execute “python <$(curl <remote python file>” as a single command (not a command as a command with parameters), I would seperate and use “<$(curl <remote python file>” as a seperate command
– MadProgrammer
Jan 19 at 6:55
my bad on closing parenthesis (its copy/paste issue)
– Nuthan Kumar
Jan 19 at 7:04
Separate command means download file to local and then running python? I am afraid this may not be possible in my case. This is a framework where users provide a string of command and Java code executes them (any shell command)
– Nuthan Kumar
Jan 19 at 7:06
add a comment |
The interpolated version is missing a closing paren
– Mad Physicist
Jan 19 at 6:55
I would surmise that it’s trying to execute “python <$(curl <remote python file>” as a single command (not a command as a command with parameters), I would seperate and use “<$(curl <remote python file>” as a seperate command
– MadProgrammer
Jan 19 at 6:55
my bad on closing parenthesis (its copy/paste issue)
– Nuthan Kumar
Jan 19 at 7:04
Separate command means download file to local and then running python? I am afraid this may not be possible in my case. This is a framework where users provide a string of command and Java code executes them (any shell command)
– Nuthan Kumar
Jan 19 at 7:06
The interpolated version is missing a closing paren
– Mad Physicist
Jan 19 at 6:55
The interpolated version is missing a closing paren
– Mad Physicist
Jan 19 at 6:55
I would surmise that it’s trying to execute “python <$(curl <remote python file>” as a single command (not a command as a command with parameters), I would seperate and use “<$(curl <remote python file>” as a seperate command
– MadProgrammer
Jan 19 at 6:55
I would surmise that it’s trying to execute “python <$(curl <remote python file>” as a single command (not a command as a command with parameters), I would seperate and use “<$(curl <remote python file>” as a seperate command
– MadProgrammer
Jan 19 at 6:55
my bad on closing parenthesis (its copy/paste issue)
– Nuthan Kumar
Jan 19 at 7:04
my bad on closing parenthesis (its copy/paste issue)
– Nuthan Kumar
Jan 19 at 7:04
Separate command means download file to local and then running python? I am afraid this may not be possible in my case. This is a framework where users provide a string of command and Java code executes them (any shell command)
– Nuthan Kumar
Jan 19 at 7:06
Separate command means download file to local and then running python? I am afraid this may not be possible in my case. This is a framework where users provide a string of command and Java code executes them (any shell command)
– Nuthan Kumar
Jan 19 at 7:06
add a comment |
1 Answer
1
active
oldest
votes
Java can do just about everything curl
can do. Just download the file with code:
URL remotePythonFile = new URL("http://example.com/remotefile.py");
Path localPythonFile = Files.createTempfile(null, ".py");
try (InputStream remoteStream = remotePythonFile.openStream()) {
Files.copy(remoteStream, localPythonFile,
StandardCopyOption.REPLACE_EXISTING);
}
ProcessBuilder builder =
new ProcessBuilder("python", localPythonFile.toString());
unfortunately, this is not an option for us. The code snippet above is getting dynamic List (commands ) from an external source and this can have any valid shell command.
– Nuthan Kumar
Jan 19 at 7:16
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54264737%2fusing-java-prcoessbuilder-to-run-python-remote-file%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Java can do just about everything curl
can do. Just download the file with code:
URL remotePythonFile = new URL("http://example.com/remotefile.py");
Path localPythonFile = Files.createTempfile(null, ".py");
try (InputStream remoteStream = remotePythonFile.openStream()) {
Files.copy(remoteStream, localPythonFile,
StandardCopyOption.REPLACE_EXISTING);
}
ProcessBuilder builder =
new ProcessBuilder("python", localPythonFile.toString());
unfortunately, this is not an option for us. The code snippet above is getting dynamic List (commands ) from an external source and this can have any valid shell command.
– Nuthan Kumar
Jan 19 at 7:16
add a comment |
Java can do just about everything curl
can do. Just download the file with code:
URL remotePythonFile = new URL("http://example.com/remotefile.py");
Path localPythonFile = Files.createTempfile(null, ".py");
try (InputStream remoteStream = remotePythonFile.openStream()) {
Files.copy(remoteStream, localPythonFile,
StandardCopyOption.REPLACE_EXISTING);
}
ProcessBuilder builder =
new ProcessBuilder("python", localPythonFile.toString());
unfortunately, this is not an option for us. The code snippet above is getting dynamic List (commands ) from an external source and this can have any valid shell command.
– Nuthan Kumar
Jan 19 at 7:16
add a comment |
Java can do just about everything curl
can do. Just download the file with code:
URL remotePythonFile = new URL("http://example.com/remotefile.py");
Path localPythonFile = Files.createTempfile(null, ".py");
try (InputStream remoteStream = remotePythonFile.openStream()) {
Files.copy(remoteStream, localPythonFile,
StandardCopyOption.REPLACE_EXISTING);
}
ProcessBuilder builder =
new ProcessBuilder("python", localPythonFile.toString());
Java can do just about everything curl
can do. Just download the file with code:
URL remotePythonFile = new URL("http://example.com/remotefile.py");
Path localPythonFile = Files.createTempfile(null, ".py");
try (InputStream remoteStream = remotePythonFile.openStream()) {
Files.copy(remoteStream, localPythonFile,
StandardCopyOption.REPLACE_EXISTING);
}
ProcessBuilder builder =
new ProcessBuilder("python", localPythonFile.toString());
answered Jan 19 at 7:12
VGRVGR
22.7k42840
22.7k42840
unfortunately, this is not an option for us. The code snippet above is getting dynamic List (commands ) from an external source and this can have any valid shell command.
– Nuthan Kumar
Jan 19 at 7:16
add a comment |
unfortunately, this is not an option for us. The code snippet above is getting dynamic List (commands ) from an external source and this can have any valid shell command.
– Nuthan Kumar
Jan 19 at 7:16
unfortunately, this is not an option for us. The code snippet above is getting dynamic List (commands ) from an external source and this can have any valid shell command.
– Nuthan Kumar
Jan 19 at 7:16
unfortunately, this is not an option for us. The code snippet above is getting dynamic List (commands ) from an external source and this can have any valid shell command.
– Nuthan Kumar
Jan 19 at 7:16
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54264737%2fusing-java-prcoessbuilder-to-run-python-remote-file%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
The interpolated version is missing a closing paren
– Mad Physicist
Jan 19 at 6:55
I would surmise that it’s trying to execute “python <$(curl <remote python file>” as a single command (not a command as a command with parameters), I would seperate and use “<$(curl <remote python file>” as a seperate command
– MadProgrammer
Jan 19 at 6:55
my bad on closing parenthesis (its copy/paste issue)
– Nuthan Kumar
Jan 19 at 7:04
Separate command means download file to local and then running python? I am afraid this may not be possible in my case. This is a framework where users provide a string of command and Java code executes them (any shell command)
– Nuthan Kumar
Jan 19 at 7:06