Calling an unix command from a java program which runs on windows
Hello All
I have an Java Application which is run on windows server (I)
I have another Sun Server (II)
I want to call an unix command on server(II) from java application which is on server(I)
I am using Samba Server in order to share files between Windows Server and Unix Server
Can I use samba in order to call command
or is there any way to open an telnet session within java application
I will be grateful if you give me some suggestion on this issue
Regards
BEKIR BALCIK
J2EE Application Developer
Argela Technologies ...
cross post
http://forum.java.sun.com/thread.jspa?threadID=624601&messageID=3553626#3553626
Similar Messages
-
How to execute unix command from the Java program running on Windows
Hello,
I need to
1. Execute a unix shell script from a Java program running on the Windows.
2. I also need to capture the output of this shell script in my program.
Please suggest me how to achieve this.
Thanks in Advance.Hi...
Something is missing here
If you want to execute a shell script in windows that not posible unless you find or develop a unix shell script parser for windows.
But if you are trying the execute a unix shell script on a remote unix computer from your java program running on a windows platform you can do that by logging on to the UNIX terminal which is running on port 23 I think.
You can test this using telnet tool on windows
just type on command prompt
telnet <ip of the unix pc> <port number this case 23>
you should get the unix terminal. If that works you can do the same through java or you can directly conect to port 23 of that pc using sockets that way your program will be platform independant -
Running curl command from a java program using Runtime.getRuntime.exec
for some reason my curl command does not run when I run it from within my java program and errors out with "https protocol not supported". This same curl command however runs fine from any directory on my red hat linux system.
To debug the problem, I printed my curl command from the java program before calling Runtime.getRuntime.exec command and then used this o/p to run from the command line and it runs fine.
I am not using libcurl or anything else, I am running a simple curl command as a command line utility from inside a Java program.
Any ideas on why this might be happening?thanks a lot for your response. The reason why I am using curl is because I need to use certificates and keys to gain access to the internal server. So I use curl "<url> --cert <path to the certificate>" --key "<path to the key>". If you don't mid could you please tell me which version of curl you are using.
I am using 7.15 in my system.
Below is the code which errors out.
public int execCurlCmd(String command)
String s = null;
try {
// run the Unix "ps -ef" command
Process p = Runtime.getRuntime().exec(command);
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(p.getErrorStream()));
// read the output from the command
System.out.println("Here is the standard output of the command:\n");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
// read any errors from the attempted command
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
System.out.println(s);
return(0);
catch (IOException e) {
System.out.println("exception happened - here's what I know: ");
e.printStackTrace();
return(-1);
} -
How to call j2me emulator instance from a java program?
hi,
how to call j2me emulator instance from a java program?
i tried public void startApp(){
try{
platformRequest("tel:+5550000");
}catch(Exception e){
e.printStackTrace();
from a j2me midlet itself,
but it gave illegal access exception.
do i need any hardware phone connected to my pc?
please help.http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
import java.util.*;
public class OpenExplorer{
public static void main(String args[]){
new OpenExplorer();
public OpenExplorer(){
try{
String command = "explorer C:";
// or String command = "cmd /c explorer C:";
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(command);
int exitVal = process.waitFor();
System.out.println("Exit Value: " + exitVal);
} catch(Exception e){
e.printStackTrace();
} -
Cannot call ANY stored functions from my Java program
My problem is that I cannot call ANY stored procedure from my Java
program. Here is the code for one of my stored procedures which runs
very well in PL/SQL:
PL/SQL code:
CREATE OR REPLACE PACKAGE types AS
TYPE cursorType IS REF CURSOR;
END;
CREATE OR REPLACE FUNCTION list_recs (id IN NUMBER)
RETURN types.cursorType IS tracks_cursor types.cursorType;
BEGIN
OPEN tracks_cursor FOR
SELECT * FROM accounts1
WHERE id = row_number;
RETURN tracks_cursor;
END;
variable c refcursor
exec :c := list_recs(11)
SQL> print c
COLUMN1 A1 ROW_NUMBER
rec_11 jacob 11
rec_12 jacob 11
rec_13 jacob 11
rec_14 jacob 11
rec_15 jacob 11
Here is my Java code:
import java.sql.*;
import java.io.*;
import oracle.jdbc.driver.*;
class list_recs
public static void main(String args[]) throws SQLException,
IOException
String query;
CallableStatement cstmt = null;
ResultSet cursor;
// input parameters for the stored function
String user_name = "jacob";
// user name and password
String user = "jnikom";
String pass = "jnikom";
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
try { Class.forName ("oracle.jdbc.driver.OracleDriver"); }
catch (ClassNotFoundException e)
{ System.out.println("Could not load driver"); }
Connection conn =
DriverManager.getConnection (
"jdbc:oracle:thin:@10.52.0.25:1521:bosdev",user,pass);
try
String sql = "{ ? = call list_recs(?) }";
cstmt = conn.prepareCall(sql);
// Use OracleTypes.CURSOR as the OUT parameter type
cstmt.registerOutParameter(1, OracleTypes.CURSOR);
String id = "11";
cstmt.setInt(2, Integer.parseInt(id));
// Execute the function and get the return object from the call
cstmt.executeQuery();
ResultSet rset = (ResultSet) cstmt.getObject(1);
while (rset.next())
System.out.print(rset.getString(1) + " ");
System.out.print(rset.getString(2) + " ");
System.out.println(rset.getString(3) + " ");
catch (SQLException e)
System.out.println("Could not call stored function");
e.printStackTrace();
return;
finally
cstmt.close();
conn.close();
System.out.println("Stored function was called");
Here is how I run it, using Win2K and Oracle9 on Solaris:
C:\Jacob\Work\Java\Test\Vaultus\Oracle9i\FunctionReturnsResultset>java
list_recs
Could not call stored function
java.sql.SQLException: ORA-00600: internal error code, arguments:
[ttcgcshnd-1], [0], [], [], [], [], [], []
at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:889)
at
oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:490)
at
oracle.jdbc.driver.OracleStatement.getCursorValue(OracleStatement.java:2661)
at
oracle.jdbc.driver.OracleStatement.getObjectValue(OracleStatement.java:4189)
at
oracle.jdbc.driver.OracleStatement.getObjectValue(OracleStatement.java:4123)
at
oracle.jdbc.driver.OracleCallableStatement.getObject(OracleCallableStatement.java:541)
at list_recs.main(list_recs.java:42)
C:\Jacob\Work\Java\Test\Vaultus\Oracle9i\FunctionReturnsResultset>
Any help is greatly appreciated,
Jacob NikomThank you for your suggestion.
I tried it, but got the same result. I think the difference in the syntax is due to the Oracle versus SQL92 standard
conformance. Your statament is the Oracle version and mine is the SQL92. I think both statements are acceptable
by the Oracle.
Regards,
Jacob Nikom -
How to run a openssl command from a java program
Hi All
Please suggest on how to run a openssl command from a java program.
I am using this
Runtime runtime = Runtime.getRuntime();
runtime.exec("openssl pkcs8 -inform der -nocrypt test.der result.pem");
This is suppose to take test.der as input and create result.pem.
There are no errors but the file result.pem isnt created.
Thanks in AdvanceFirst off is that openssl command correct? Should it be this instead:
openssl pkcs8 -inform der -nocrypt -in test.der -out result.pem
Try out your openssl command within a command prompt so that you know that it works ok. I think the command line you specified waits on stdin (well it does for me).
After that.....
runtime.exec creates a Process object. If you do this:
Process openssl = runtime.exec("....")
then you can examine the return code from openssl to see the exit code - for instance if the input file does not exist then exit = 1. You can test for this with Java
Alternatively you could get the stderr from the process and look inside it - if it is 0 length then all is good, if it has some text in there then it has likely failed. You could then throw an exception and include the stderr output in the exception messgae. You may need to experiment with this, runnig it first when openssl is happy then running it again when openssl is upset.
M -
How:Execute OS commands from a Java program
hi,
is it possible to execute an OS command from a java program, as in C/C++? if yes, plz give the details.
thanxIn the future try searching the forum before posting. Using keywords like "execute os commands" would lead you to several postings on this topic.
Note the keywords where taken directly from you subject line. With practice you learn which keywords to use to yield the best search results. -
Calling a Unix Command from Java
Hi all,
I'm not a Java guy, I need a small help, I need a code which will call a Unix Command called from a Java code. For Example I need a Java code whereby I should be able to do a 'ls -lt' on my Unix box. Can anybody please help.
Thanks,
ShantanuSee Runtime.exec()
-
Execute several UNIX OS commands from inside Java program
Greetings,
I would like to be able to execute from a Java program several of the following UNIX commands
script filename
cd
date
grep
diff
I have been able to get a single command to work with
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("dir");
My goal here is to accomplish a Java program which will use JDBC to access an Oracle database with SQL and then compare the resultant flat file with a diff command in Unix to another delimited file from an Excel spreadsheet. Your input is appreciated.
Thank youI would suggeat to use JDBC to get the data from database and then read your file and then use existing java diff program from following link to find the differences between the files
http://www.bmsi.com/java/
I hope this helps
VAN -
How can I pass system commands from a java program? Urgent!
hi,
I have been trying this out since a long time. How do I send system commands to command.com or cmd.exe from a java program and an output of the executed command back to the java application.
If u have any idea, or have any information about the kind os application reply back.
Thanks
Deepa DatarThis is the code which I tried, but it displays only the title of MS-DOS, something like " Microsoft Corp...etc ". But doesn't take any input, and the subprocess(cmd.exe) hangs.
import java.io.*;
public class cmddemo2
public static void main(String arg[])
try
System.out.println("cmd");
Process p=Runtime.getRuntime().exec("cmd.exe");
DataInputStream din=new DataInputStream(p.getInputStream());
DataOutputStream dout=new DataOutputStream(p.getOutputStream());
System.out.println("after streams");
String s;
dout.writeChars("type cmddemo2.java");
while((s=din.readLine())!="\n")
System.out.println(s);
dout.writeChars("dir");
String s1;
while((s1=din.readLine())!="\n")
System.out.println(s1);
System.out.println("over");
catch(Exception e)
{ System.out.println("Exception : "+e); -
SDK J2 EE server remove it from list of programs which start with windows
Hello there
Since SDK J2EE 5 server takes many resources, I would like to be able to remove it from the list of programs which start with Windows XP PRO start up.
How could I possibly do that?
Thanks in advanceSince SDK J2EE 5 server takes many resources,is it take more resource ?
is it decrease your speed ?
is it not allow another app or software to run ?
if you say yes,
then
type msconfig in start->run
click startup tab and deselect the corresponding checkbox
or
go to control panel -> administrator tools -> services -> select the service , then right click properties and select disable in drop down,
or
control panel -> add or remove programs -> select j2ee-xxx remove it -
Calling Operating system command from PL/SQL programs
Hi
Is there any way we call the unix shell script from PL/SQL procedure/functionsIn 10g, it is possible.
BEGIN
dbms_scheduler.create_job(job_name => 'myjob',
job_type => 'executable',
job_action => '/app/oracle/x.sh',
enabled => TRUE,
auto_drop => TRUE);
END;
SQL> exec dbms_scheduler.run_job('myjob');
Documentation:
http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_sched.htm#sthref6596
-aijaz -
Control a program which running in Windows
Hi all,
I have a program. When this program run on windows desktop, I can control it by using VB6 or C# if it is running (online when VB6 control).
(This program provide a dll file to access it when running)
For example :
Dim OBJ As Object
Set OBJ = CreateObject("DESKTOP.APPLICATION")
'Set APP = New DESKTOP.Application
Set APP = OBJ.GetApplication("FUNDS.TRANSFER")
' Then use APP to control program which is running online
The code above use for VB6, how can I cotrol this program by Java like VB6. How to use dll file to do it
pls help meguitar_man_F wrote:
I've never actually done this, but I might be able to help you understand some of the challenges.
First, Java is a platform independent language. That is, it doesn't know that dll's exist, because on operating systems like linux, they don't. So the standard java libraries don't provide any way to do this. You will need to use JNI to interoperate with native code, so JNI tutorials are a good place to start.
Also, since you're tring to communicate with programs that are already running, a good google search term would be "inter-process communcation", or IPC.
- Adamthank for your reply, maybe JNI is good for this project, I will try with your suggestion
Anyone know something about this, pls tell me more
Thank -
How do I call another exe file from a Java program?
Hi,
I am doing a simple IDE (text editor/interpreter) for a simple programming language we are developing. It will be submitted as our project for this semester. I created an exe file (in C) which will be used as the interpreter. How do I call the interpreter from my IDE? The interpreter should run when the user clicks a button (i.e. the "Run" button). I've tried the Java Runtime class but it doesn't work. Anyone who knows how to do it?
Thanks!I first tried to do a simple program that calls system commands such as dir, cd <dir>, etc.
I do not have the exact code right now but as far as I can remember, here's what I wrote:
class Sample{
public static void main(String args[]) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String command;
while ((command = in.readLine()).equalsIgnoreCase("exit") == false){
try{
Runtime.getRuntime().exec(command);
}catch(Exception e){
System.err.println("Error: " + e);
System.exit(0);
} -
Call an interactive UNIX command from java
Hi,
I want to call a UNIX command from java. When issue the command 'htpasswd -c filename username' on UNIX terminal, it asks for the new password and the then confirmation password again (yeah, unfortunately the htpasswd installed on our system does not allow you proivde the password on the command line. So have to work interactively ). Now, I have written a simple java program RunCommand.java. I am hardcoding the password for the htpasswd command in the file (in the real situation, password will be generated dynamically). I want to issue 'java RunCommand' on the UNIX command line and get back the command prompt without being asked for the password twice. The code is below, but the Outputstream does not work as expected. It always asks for inputs. Any idea? Many thanks.
import java.io.*;
public class RunCommand {
public static void main(String args[]) throws Exception {
String s = null;
try {
String cmd = "htpasswd -c filename username ";
// run a Unix command
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
OutputStream stdOut = p.getOutputStream();
String pswd = "mypassword";
while ((s = stdInput.readLine()) != null) {
s = stdInput.readLine();
stdOut.write(pswd.getBytes());
stdOut.flush();
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
System.out.println(s);
stdOut.close();
stdInput.close();
stdError.close();
System.exit(0);
catch (IOException e) {
System.out.println("exceptions caught: ");
e.printStackTrace();
System.exit(-1);There are only about 9 billion responses a day on how to do this. Use the search feature.
Maybe you are looking for
-
ITunes rookie needs explanation re download mystery.
Hi- I have purchased a TV show episode which downloaded almost to the very end, then I was disconnected.(DSL connection.) (Happened twice.) When I reconnected the first time the download was a cm from the end, but on reconnecting the second time the
-
Realworld Wireless speed and errors
I've got 4 1130ag's, three at one site and one at another. I get just about 2Mbps over them. I've limited the AP's to only use G speeds per Cisco's docs, I've verified the ethernet port on the 3560's they plug into, they transfer at real 100Mbps Lan
-
Split spool for payment advice
Hi expert, I would like to send payment advices to vendors via FAX. I run the payment program, which triggers a background job and produces 1 spool with payment advices for all the selected vendors. The faxes cannot be sent. They are blocked because
-
I am tryign tor reorder photos ( in library mode) but warning mesage says cannot do can anyone help? thank you
-
HELP: Can I see whether a connection/stmt is open??
Hi there, anyone knows if it is possible to see if a connection and preparedstatement is open?? I'd like to be able to see this in my app, as I do close resources after execute, and must open them again if user calls method again.... Best regards, AC