3

I am running a Java batch file from C#. If I run it by double clicking it executes successfully, but if I run it from C# code it gives exception in thread

"exception in "main" thread java.lang.noclassdeffoundError"..

what can be the reason and how can it be solved? I am using the code:

var si = new ProcessStartInfo();

si.CreateNoWindow = true;
si.FileName = "batch-file path";
si.UseShellExecute = true;

Process.Start(si);
1
  • 1
    I guess the working directory could be relevant for the Java application. Commented May 12, 2011 at 13:33

4 Answers 4

1

You are most likely missing some of the parameters that would be included in your systems environment variables.

Sign up to request clarification or add additional context in comments.

1 Comment

I really can't because I don't know anything about the Java program you are trying to run. But this other OS article might help you get started: stackoverflow.com/questions/318239/…
0

Try setting working directory like this

process.StartInfo.WorkingDirectory = "C:\";

Also, try few other options as mentioned here,

http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/20992653-dabf-4b31-85f7-e7bfbfb4557c

Comments

0

Try adding the following code as the first line to your batch file.

@cd /d %~dp0

Comments

0

Do not use batch_process_path + "\" + instead use Path.Combine() to make sure the path is correctly fitted with slashes.

Also read this "When UseShellExecute is true, the WorkingDirectory property specifies the location of the executable"

So set it to false.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.