Java and .net interoperability

Posted by dineshrekula on Stack Overflow See other posts from Stack Overflow or by dineshrekula
Published on 2010-04-21T06:14:24Z Indexed on 2010/04/21 6:23 UTC
Read the original article Hit count: 355

Filed under:
|

I have a c# program through which i am opening cmd window as a a process. in this command window i am running a batch file. i am redirecting the output of that batch file commands to a Text File. When i run my application everything seems to be ok.

But few times, Application is giving some error like "Can't access the file. it's being used by another application" at the same time cmd window is not getting closed. If we close the cmd process through the Task Manager, then it's writing the content to the file and getting closed. Even though i closed the cmd process, still file handle is not getting released. so that i am not able to run the application next time onwards.Always it's saying Can't access the file. Only after restarting the system, it's working.

Here is my code:

Process objProcess = new Process();
ProcessStartInfo objProInfo = new ProcessStartInfo();
objProInfo.WindowStyle = ProcessWindowStyle.Maximized;
objProInfo.UseShellExecute = true;
objProInfo.FileName = "Batch file path"                
objProInfo.Arguments = "Some Arguments";
if (Directory.Exists(strOutputPath) == false)
{
  Directory.CreateDirectory(strOutputPath);
}               
objProInfo.CreateNoWindow = false;
objProcess.StartInfo = objProInfo;                
objProcess.Start();                
objProcess.WaitForExit();

test.bat:

 java classname argument > output.txt

Here is my question:

  1. I am not able to trace where the problem is..

  2. How we can see the process which holding handle on ant file.

  3. Is there any suggestions for Java and .net interoperability

© Stack Overflow or respective owner

Related posts about c#

Related posts about interoperability