user2519456
user2519456

Reputation: 21

java, execute exe from WAR in java code

In my war, I have file exe in WEB-INF\classes\

How can I execute this file in Java code (How can I specify path to this file) ?

command = " ? ";
Process x = p.exec(command);

Upvotes: 0

Views: 1233

Answers (3)

1ac0
1ac0

Reputation: 2939

This is bad idea. Imagine simply fact that your .war packege should run on almost any server (".war is platform independend") and your .exe file is compiled just for one architecture.

Better should be execute your .exe as external program just for separate platform independent and platform dependent part. Then in java you can test operating system and on this basis run desired externel programm.

Read this link with similar question.

Upvotes: 1

Art Licis
Art Licis

Reputation: 3679

Te following approach could work:

1) Prepare full path of your executable:

ServletContext context = getContext();
String fullPath = context.getRealPath("/WEB-INF/classes/executable");

2) Execute like you would normally do it:

String[] cmd = { fullPath /*[...] arguments */};
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();

This is a simplified example; you may also want to read more about ProcessBuilder.

Upvotes: 1

albervera
albervera

Reputation: 45

The best way to do find a file's real location inside a web app is to use the ServletContext.getRealPath (see http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getRealPath(java.lang.String))

You can access that object from the session...

Upvotes: 0

Related Questions