Java and batch files

i want to launch my application by a batch file, whit this script:
@echo off
"C:\j2sdk1.4.2_08\bin\java.exe" -cp "C:\Documents and Settings\Intrepido\Desktop\my tesina" BSServer 2103
pause
my application as first operation, read from a txt file some row just to configure himself.
if i launch my application from DOS, writing the path manually, my application does function correctly, instead, launching it from batch file, the first row read return a null value; (i use the RandomAccessFile class and the readLine() method to access file...)
moreover, since my application is a JFrame class, i've associate some icon to the buttons of the window. starting the application manually from DOS the icons are benn loaded, instead, launching the application from the batch file, the icons are not loaded...
Help me please...
and sorry for my bad english...

i want to launch my application by a batch file, whit
this script:
@echo off
"C:\j2sdk1.4.2_08\bin\java.exe" -cp "C:\Documents and
Settings\Intrepido\Desktop\my tesina" BSServer 2103
pause
my application as first operation, read from a txt
file some row just to configure himself.
if i launch my application from DOS, writing the path
manually, my application does function correctly,
instead, launching it from batch file, the first row
read return a null value; (i use the RandomAccessFile
class and the readLine() method to access file...)
moreover, since my application is a JFrame class,
i've associate some icon to the buttons of the
window. starting the application manually from DOS
the icons are benn loaded, instead, launching the
application from the batch file, the icons are not
loaded...
Help me please...
and sorry for my bad english...Since it is a java forum, I suppose that your app is a java app, isn�t it?
First, define the MANIFEST.MF of your application, that must call the class that contains the famous public static void main(String[] args) method. If you haven�t made this method yet, make it. This method must initialize your app. If you don�t know how to create or how to configure the MANIFEST.MF file, read the articles below:
http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html
http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html
Don�t forget to configure the reference of some jar files required by your app in the MANIFEST.MF if it is necessary.
Second, create the batch file. The content of this file is simple. It has has to be like below:
java -jar MyJarFile.jar
Where MyJarFile.jar is your jar file. Then, put this batch file in the same directory of the jar file and double click it. Finish! Your app will be executed as you want.
Of course, first of all, you have to configure the java environment variables in order to this app works well (JAVA_HOME, PATH, CLASSPATH, etc).
It is just one manner to do what you want. There are other ways to do it, of course.

Similar Messages

  • Java and Batch File Issue - need urgent help

    I have a java program which calls a batch file. This batch file calls another java program. I want an option so that I can close this java program from main program.
    If i try process.destroy then it will call batch file and not java program.
    I can't go away with batch file.
    I will appreciate if someone can help me.

    khannap wrote:
    Hi, Thanks for the help but this doesn't seem solving my problem completely. I will appreciate if you can help more.
    I will explain you the scenario -
    1. There is java program provided as an external program to me.Only changes things slightly.
    2. This java program is called using batch file. When batch file is started this java program starts and listens on a socket for incoming data.I would want to wrap the launch of this java program in another JVM so we can use process.destroy().
    3. I am writing a program to check performance of the above java program. I want to call this java program from my program in a loop having some varying config data. When I run the loop first time I create a batch file at run time which executes the batch file provided by vendor. This batch file starts the socket. Once my message list is over then my loop goes to executing the batch file again with different config parameters. But this time I run into issue because my previous java program is not killed after message sending was over.Would it be acceptable to mung the 3rd party batch file to insert a wrapper JVM?
    Even if i use threads I don't think I can get rid of batch file.I did not suggest getting rid of batch files.
    So, I need to find a way so that when any iteration of loop is over then this socket program is killed. These 3rd party java programs - do they not have a "terminate" command you can put at the end of your message list?
    Even if i closed the socket from my client program that doesn't help because server is still listening and waiting for new client.
    I need to kill server which was started by batch file.On Linux it would be fairly simple to modify your batch file to determine what the process id is and send the process a signal to terminate it.
    Not sure what you can do on Windows.

  • Please help how to run System commands and batch files thru java program

    Sir,
    I want execute OS commands like dir,cls..etc and batch files,.exe filesthru java program.
    I have tried it sofar thru Runtime.getRuntime().exec("execute.bat");
    but it is not working.anybody knows about how to run the system commands thru java please give me the code.
    thank you,
    regards,
    j.mouli

    I've seen other posts with this questions, and answers. Unfortunately I didn't pay much attention. But the basic idea is to exec command.com and pass the specifc batch or command as an argument.

  • Verifying .java and .class files match

    I have a bit of a strange situation in a team-working environment where many developers copy code to a production server. None of this code is in a Version Control System and I have been given the task of getting it into one (I've chosen Subversion, but that isnt important)
    The problem is, its not as simple as doing a full commit of the production server because developers may have copied edited .class files onto the server, but not copied edited .java (therefore the .java file is not the same as the .class file)
    Because the server has hundreds (if not thousands) or java and class files, I cant just decompile each of the class files and manually see if they match the java files, so I'm asking, is there a tool that can verify a java file matches a class file of the same name in terms of version (or if not is there an easier way of doing it than the decompile method)?
    Thanks in advance

    Years ago I had to do something very much like this...and now I'm trying to recall how we did it (and for that matter whether it worked)...and I'm having trouble recalling. Ah, that's what happens when you read forums out of insomnia.
    Of course, you can do a baseline check by just checking the file timestamps. Also instead of decompiling the class files you can try re-compiling the source code, and then generating checksums on both class files to see if they're the same.
    You might be able to use BCEL (http://jakarta.apache.org/bcel/) to extract some useful information out of the class files. As I recall I tried this but the data wasn't useful for this kind of project, but maybe I'm misremembering. It's worth looking into.

  • Could not find .java and .class files...

    I am working on Windows Vista operating system.
    I am able to access the .java which I created and also .class files from the command prompt.
    But I am not able to find those files in the bin folder in Windows Explorer.
    I want to delete some .java and .class files. When I use the delete command on the command prompt , I am getting ---- could not find the file.
    Can anyone help me...

    Hey everyone,
    I found the answer!
    If the command prompt application is run as administrator(since it is windows vista), the created .java files as well as .class files will be stored and can be seen in the bin folder.
    However, I could not locate the .java files (and also corresponding .class files) which I created previously.

  • ALE-Interface and batch file

    Hi,
    So far we have transferred Data from one system to main system through ALE-Interface and Batch file. Now we are thinking to harmonize and optimize this process and run all data transfers though ALE-Interface and eliminate Batch File process.
    Can anybody tell me, why the ALE-Interface is better than Batch file for data transfers?
    Thanks

    Batch file is carried out at offline and at certain time intervals
    where as ALE is online transfer and while triggering a particular tcode it can be made to trigger
    This is why ALE is best
    cheers
    S.Janagar

  • Can Java execute batch file outside of current JVM in separate process tree

    Hi,
    Does anyone know how to run programs from Java as separate processes that will not die when the spawning java program exits (JVM exits).
    The problem I have with using Runtime.exec is it spawns only child processes under the current running JVM, thus when the origonal program that called Runtime.exec ends so does all child processes.
    Basically I want to start a DOS batch file from my Java application, my Java application will then immediately exit (calling System.exit(0) ). The batch program will continue to run, its does some file clean up, create's some new files and deletes the old jar (containing the main app), it then rebuilds the main app jar and and executes the main class and then exits itself.
    I've also tried the apache.tomcat.jni.Proc :-
    long pool = Pool.create( new Long(0).longValue() );
    long pa = Procattr.create( pool );
    Procattr.dirSet( pa, "c:\\temp\\updater\\");
    Procattr.cmdtypeSet( pa, Proc.APR_SHELLCM );
    Procattr.detachSet( pa, 1 );
    long proc = Proc.alloc( pool );
    Proc.create( proc, "test.bat", new String[]{"test.bat"}, null, pa, pool );
    System.exit(0);
    The detach option doesn't work, if I take it off then the bat file runs and stops the JVM exiting, if I leave it in the batch file never gets called.
    Is this possible in Java. Can java start master process on Windows XP JDK1.5+?
    Cheers
    Chris.

    Well I found the answer elsewhere (java.net) thought I'd post it here for future visitors who might be experience the same problem.
    Basically Runtime can do this however it must be done the following way :-
    The java:-
    public class Main {
        public static void main(String[] args) throws Exception {
            Process p=Runtime.getRuntime().exec("cmd /c c:\\test.bat");
            System.out.println("done");
            System.out.println("quitting");
            System.exit(0);
    }The batch:-
    @echo off
    PING 1.1.1.1 -n 1 -w 5000 >nul
    java -cp "c:\ " MainThe important line that makes the whole thing work is :-
    @echo offIf this line is missing then the whole things locks up (must be the io streams getting used)
    Also this code can not be run from an IDE (well at least not from Intellj) as it also locks up.
    It must be run from a command prompt or jar.
    Also note that any commands in the batch file must have there output redirected to "nul" otherwise Windows kills the cmd as soon as it trys to output to a dead stream (dead because the Java has exited). for example :-
    @echo off
    PING 1.1.1.1 -n 1 -w 10000 >nul
    cd %1
    del /F /Q *.* >nul
    move /Y new\*.* >nul
    RD /Q /S new >nul
    PING 1.1.1.1 -n 1 -w 1000 >nul
    java -cp "c:\ " Main
    exit

  • Orbd and batch file

    What am I doing wrong? If I start the orbd by opening a cmd prompt on win2k, and typing orbd -ORBInitialPort 1050 -serverPollingTime 200
    Then, I start servertool and register....everything works fine.
    If I take orbd -ORBInitialPort 1050 -serverPollingTime 200 and put it into a batch file....
    start orbd -ORBInitialPort 1050 -serverPollingTime 200
    register in servertool....
    run the client and it cannot connect to the orb, a null value is returned instead?
    Any help is very much appreciated.

    I tried this for my batch file...still doesn't work
    REM - Start the ORB daemon
    start %JAVA_HOME%\bin\orbd -ORBInitialPort 1050 -serverPollingTime 200
    @echo Wait 10-15 seconds for the orbd to start
    @pause
    REM - Register the persistent server with orbd using servertool
    %JAVA_HOME%\bin\java com.sun.corba.se.internal.Activation.ServerTool -ORBInitialPort 1050 -cmd register -server MyServer -applicationName s1 -classpath c:\myserver\myfiles;

  • Runtime.exec() and batch files

    I am having a problem on Windows 2000 while trying to execute a batch file with the Runtime.exec() method. Basically, the exit value returned from the call to Runtime.exec(), returned specifically by the waitFor() method in the Process class, is always zero, even if the batch file fails miserably. After looking into batch files further, it seems to me that the only way to get the exit value of the commands run in the batch file back to the Runtime.exec() call is to put "EXIT %ERRORLEVEL%" in the batch file. What this actually does is exit the command(cmd) shell that the batch file was running in with the exit code of the last command run. This is all great when calling the batch file with a Runtime.exec() call, but when you run it in a cmd window, the window closes when the batch file completes, because the call to EXIT exits the entire shell. I guess i'm just wondering, am i correct in assuming the exit value returned to the java process is going to be the exit value of the shell in which the batch file is running? I need to have the exit value actually indicate whether the batch file ran successfully or not, and if i have to put in the EXIT %ERRORLEVE% (which exits the cmd shell with the exit value of the last command run), then i'll do that, but if someone knows a better way of doing this, i am all ears. Thanks in advance

    To run any command from java code, the method is
    Runtime.getRuntime().exec( myCommandString )
    Where, myCommandString is something like "/full/pathname/command".
    If the pathname contains spaces (specifically in Windows), e.g. "c:\program files\windows\notepad", then enclose it in quotes within the quoted string. Or pre-tokenize them into elements of an array and call exec(String[] cmd) instead of exec(String cmd).
    From JDK1.3 there are two new overloaded Runtime.exec() methods. These allow you to specify starting directory for the child process.
    Note, there is a gotcha associated with reading output from commands. When the runtime exec's the process, it passes to it 3 streams, for stdin, stdout, and stderr; the out and err are buffered but the buffer size isn't very big. When your process runs, it reads (if needed) from in, and writes to out and err.
    If it doesn't write more than the buffer-size, it can run to completion.
    But if it tries to write more data to one or the other stream than the buffer can hold, the write blocks, and your process hangs, waiting for you to empty the buffer so it can write some more.
    So after the exec call, get the streams, and read from them in a loop until they both hit end-of-stream (don't block on either one, just read whatever is available from each, each loop iteration).
    Then when the streams have ended, call the process.waitFor() method to let it finish dying.
    Now, here is a code snippet how you achieve this.
    String strCommand = "cmd.exe /c " + strCommand;
    // For Solaris / unix it will be
    // String strCommand = "/usr/cobra/sol/runInstaller.sh";
    boolean bWait = true;
    //execute the command
    try
         Runtime r = Runtime.getRuntime();
         Process pr = r.exec(strCommand);
         Process pr = r.exec(callAndArgs);
         BufferedInputStream bis =new BufferedInputStream(pr.getInputStream ());
         int c=0;
         /** Outlet for IO for the process **/
         while (c!=-1)
              c=bis.read();
         /**Now wait for the process to get finished **/
         if(bWait == true)
              pr.waitFor();
              pr.destroy();
    catch(Exception e)
         System.out.println("Could not execute process " + strCommand);
         return(false);

  • Problem with Java and Zip Files

    Hello there everyone. I have a problem with trying to zip up directories with empty folders in them. They zip fine with my code, but according to winzip, the number of files in the archive is incorrect. It's supposed to have a total of 288 files in it, but when it's zipped up, it only says 284. I mention specifically the "empty directories" note because the zipping works fine without empty folders.
    Below is the code for the zip method:
    public static void zip(File[] list, File zipfile, File zipRoot)
         throws IOException {
          if (!zipfile.exists()) {
                   zipfile.createNewFile();
              else if (!zipfile.isFile()) {
                   throw new IOException("The zip file, " + zipfile.getAbsolutePath()
                             + " is not a file.");
              if (list.length == 0) {
                  LOG.error("The list of files to zip up is empty.");
              for (int i = 0; i < list.length; i++) {
                   if (!list.exists()) {
                        throw new IOException("The file or directory, " + list[i].getAbsolutePath()
                                  + " does not exist.");
              FileOutputStream fos = new FileOutputStream(zipfile);
              ZipOutputStream zos = new ZipOutputStream(fos);
              for (int i = 0; i < list.length; i++) {
                   if (LOG.isDebugEnabled())
                        LOG.debug(i + ": " + list[i].getName());
                   String entryName = getRelativeName(list[i], zipRoot);
                   if (list[i].isDirectory()){
                        if (list[i].listFiles().length == 0){
                             ZipEntry entry = new ZipEntry(entryName + "/");
                             zos.putNextEntry(entry);
                   else {
                        ZipEntry ze = new ZipEntry(entryName);
                        zos.putNextEntry(ze);
                        byte[] buffer = new byte[8096];
                        FileInputStream fis = new FileInputStream(list[i]);
                        int read = 0;
                        read = fis.read(buffer);
                        if (LOG.isDebugEnabled())
                        LOG.debug("\tFound " + read + " bytes.");
                        if (read == -1){
                             //empty file, but add it for preservation.
                             //zos.write(buffer,0,0);
                        while (read != -1) {
                             zos.write(buffer, 0, read);
                             read = fis.read(buffer);
                        fis.close();
                        zos.closeEntry();
              zos.close();
    The files look like they're there, but I need the system to be able to determine the number correctly. 
    Here's the interesting thing:  It zips the files, and then when I use the size() method for zip files in java, it says 284 files.  But when I unzip, it says 288 again.  It's like there's files missing when compressed, but when decompressed, they return.  Note that the files are actually there.  If I open the archive in a third party app such as Winzip AND Winrar AND IZarc, they all show 288 files.  Any idea what would make the number of files appear incorrectly in a zip file when zipped by java with the code above?  Thanks in advance.
    - Chris                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    I figured out the problem. When zipping files in windows using winzip, it doesn't explicitly count folders as a "file/folder" as a file in itself. It will create the folders for files to go in, but the folder itself will not be 'counted' when you query the info of the file itself. You have more control of the zip file in java, and can count the folder as a file or not.

  • Help me to convert Java and Jsp Files into WAR File!!!!

    I need someone to help me to convert some java servlet files and jsp files into a WAR file. I need it URGENTLY and I'll be very grateful to anyone who is willing to help me! My email is [email protected] Thanks!!!!

    Are the Oracle JDBC drivers 11g used?
    oracle.jdbc.driver.OracleDriver is not supported in 11g drivers.
    Please replace with:
    oracle.jdbc.OracleDriver

  • MySQLDump and Batch Files

    Hello all,
    I've been using the mysql connector package to populate and retrieve data from a mysql database. Two questions. First, I have recently become very fond of the mysqldump feature attached with the mysql package. Is there a way to call somthing like that from my connector module? ... or any other mysql "-esque" commands for that matter? (ie show tables, show create table someTable) ...
    I know that the first command I issue is actually a "USE myDatabaseName" to point the connector module at the correct databse. If the USE command is a mysql command, then I'm lead to believe that commands like SHOW will also be legit. However, what would the return structure be? ... would that also be some kind of ResultSet?
    Anyway the other question would be about the execution of batch files like the ones a mysqldump command would generate. I know that I am able to open the dumped text file and populate and run the commands via the methods:
    addBatch(String sql)throws SQLException // to populate
    executeBatch() // to run.. but is there a method that already does that?
    Thanks in advance
    -Curt

    Hi,
    Try Runtime.getRuntime().exec("batchfile.bat");
    Check out Class Runtime for more info.
    -adam

  • Use CSV and batch file for net user command

    Hello Guys,
    I am trying to load domain user id's from a csv file and parse them through the net user /domain command.  I would appreciate it if someone could help me open the csv file and store each line as a variable so that it could be parsed.
    Thanks in advance.

    My apologies, I didn't notice that you specifically mentioned batch files in your question title.
    I don't have much to offer, as my batch skills are extremely rusty.
    I would personally be doing all of this via PowerShell, as the AD cmdlets can return any bit of information about your users that you'd like.
    Don't retire TechNet! -
    (Don't give up yet - 12,420+ strong and growing)

  • OWF and batch files

    Hi!
    I have a question to Oracle Workflow.
    Particularly with regard to the Activity USER_DEFINED.
    Is there a way out of a batch file to get a access to the contents of "Process Editor => Activities => USER_DEFINED => Script => value".
    When I debug I saw the variable "argv.stdin". So that ought to be possible?
    Thanks!

    Hi,
    If you meant , a way to list the values specified for SCRIPT attribute the you can use OMB+ scripts to crawl through your process flows and list the values for this attribute.
    Regards
    Mahesh

  • Fscommand and Batch Files

    Hello, been wrestling with this one for a bit. I am trying to
    figure out what code to use that would let me push a button ( on
    release ) in my standalone projector , and have a batch file
    execute.. is this possible ?

    yes it is posible
    create your .bat file,
    put in the "fscommand" folder relative to your projector file
    for your button
    on(release){
    fscommand("exec", "filename.bat");
    }

Maybe you are looking for

  • How do I move my sons Ipod touch to a new I tunes account?

    Both my sons have a I-Pod touch and they are on my I-tunes account. How do I move my older sons I-Pod to his own I-Tunes account so that when they do face time with their friends it does not show up on both I-Pods.

  • I Got 8.0.5 to work on Slackware 3.6!

    I got Oracle 8.0.5 to link and run on Slackware 3.6! The trick was getting my system to link using glibc (2.0.7) and not the default libc5. Steps: 1) From the slackware distribution media (cdrom), read /cdrom/contrib/glibc-2.0.7pre6.README. Big clues

  • My ipod 4g is in recovery mode but itunes wont restore it please help

    it is now a block after going in recovery mode as itunes wont recover it as it stopped in the middle of the process saying it cant find a file.

  • 10.5  iTunes wont install on my computer

    10.5  iTunes wont install on my computer I have XP with service pack 3, intel 1.6 GHz, and 1.99 GB of RAM (sorry I really have no clue what that all means, i just know/hope it met the requirements to ride this rollercoaster), I do not get any error c

  • Crystal Reports Server 2008 on IIS

    Hello,  About six months ago we upgraded from CR Server XI to CR Server 2008 and at that time I believe we could only install with Apache Tomcat for CMC and InfoView.  Before, we ran in IIS and I immediately noticed how slow the page loads were after