Solved

Call a local BATCH Job or Run MS ISQL

Posted on 1998-07-27
6
474 Views
Last Modified: 2008-02-26
I would like java to 'call' or 'run' a command on the same server as java is running.  The command must run an ISQL script to work on a local SQL Server and/or batch file.  How can I do it?
0
Comment
Question by:snydero
  • 3
  • 3
6 Comments
 
LVL 1

Accepted Solution

by:
dryang earned 100 total points
ID: 1228389
Thread it! spawn a thread to run the script using the exec command. but watch out for synchronization mistakes. any comments please post again
0
 
LVL 1

Author Comment

by:snydero
ID: 1228390
I was hoping for an example of a line of code.
0
 
LVL 1

Expert Comment

by:dryang
ID: 1228391
here goes.....

1) create a thread, either by extending class 'Thread' or implementing 'Runnable' in your self created class. If you want to extend 'Thread' make sure you have 'public void run()' as part of your code. The JVM will run this method automatically after the class has been called

eg.
public class myclass extends Thread
{
    myclass()    //constructor
    {}

    public void run()  //you MUST have this method (overrides run method of Thread)
    {  //does something useful
     }
}

In your calling program...

myclass mc = new myclass();
mc.run();

and the thread runs. Its the same for implementing 'Runnable'

Check the JDK documentation for specific details and synchronization issues. (check out the key word 'synchronised')


2) After you have created your code for threading, use the 'exec' command to exececute any batch jobs or scripts.(under java.lang.Runtime)

eg.
Runtime.exec("autoexec.bat");

There are various forms of exec and I reccommend that you dig around the documentation for details. Its not easy to decide which form is the best and you should take some time to look over your design specs.


note: In UNIX we use a similar method called 'fork and exec' where a seperate process is created (forked) and a command run (exec). This is where JAVA takes the idea from.

post any futhur questions ok?
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 1

Author Comment

by:snydero
ID: 1228392
Here is my code...
class HelloWorld
{      public static void main(String args[])
      {      System.out.println("Hello World!");
            rclass rc = new rclass();
            Runtime.exec("jtest.bat");
      }
}

class rclass extends Thread
{      rclass()
      {}
      public void run()
      {      System.out.println("In run now");
      }
}

The error I get is...
helloWorld.java:5: Can't make static reference to method java.lang.Process exec(java.lang.String) in class java.lang.Runtime.
            Runtime.exec("jtest.bat");
                        ^
1 error

0
 
LVL 1

Expert Comment

by:dryang
ID: 1228393
hi Syndero

Oops, Syntax error on my part.

should instantiate the Runtime object first...

Runtime rt = new Runtime();
rt.exec("jtest.bat");
0
 
LVL 1

Author Comment

by:snydero
ID: 1228394
I've tried every way to get your code example to work.  It DOESN'T!
Can you provide a complete listing please.
Again, I wish to run a batch file (jtest.bat) from a java program.
Thanks
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Java had always been an easily readable and understandable language.  Some relatively recent changes in the language seem to be changing this pretty fast, and anyone that had not seen any Java code for the last 5 years will possibly have issues unde…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now