Page 1 of 1

2 Questions about RunProgram

Posted: Wed Oct 04, 2006 4:36 pm
by porfirio
Hi all

The first question is:

Why this code gives right output

Code: Select all

OpenConsole()
PrintN("Running Java")
JavaP = RunProgram("java", "-version", "",#PB_Program_Hide|#PB_Program_Open|#PB_Program_Read)

If IsProgram(JavaP) 
  While ProgramRunning(JavaP)
    PrintN(ReadProgramString(JavaP))
  Wend
  PrintN("Exitcode: " + Str(ProgramExitCode(JavaP)))  
Else
  PrintN("not a program")
EndIf
Input()
CloseConsole()
and this one dont:

Code: Select all

Debug "Running Java"
JavaP = RunProgram("java", "-version", "",#PB_Program_Hide|#PB_Program_Open|#PB_Program_Read)

If IsProgram(JavaP) 
  While ProgramRunning(JavaP)
    Debug ReadProgramString(JavaP)
  Wend
  Debug "Exitcode: " + Str(ProgramExitCode(JavaP)) 
Else
  Debug "not a program"
EndIf
And the second question is:
How to not show java process or atleast, when myprocess is killed java is killed too?

As you may notice i am doing a small Java runner.

There's tones of them but i want to do one for my own use, with my own options and i want to be able to compile\run it on Linux\Mac\Windows
I want that if user is runing on windows ( alot noob's ), they can just kill the program in the TaskManager, so hiding the process is just need for windows, on mac\linux i will just run Java

If someone can help me i appreciate :)

Re: 2 Questions about RunProgram

Posted: Wed Oct 04, 2006 5:34 pm
by Trond
porfirio wrote:Hi all

The first question is:

Why this code gives right output

and this one dont:
Did you turn on the debugger and read the manual description of Debug?

Re: 2 Questions about RunProgram

Posted: Wed Oct 04, 2006 6:58 pm
by porfirio
Trond wrote:
porfirio wrote:Hi all

The first question is:

Why this code gives right output

and this one dont:
Did you turn on the debugger and read the manual description of Debug?
Yeah
either i get

Exitcode: 0

Posted: Wed Oct 04, 2006 8:26 pm
by Trond
You do realize that when you create an executable the debugger is always disabled?

Posted: Wed Oct 04, 2006 8:47 pm
by dracflamloc
it is? I thought there was an embedded debugger...

Posted: Wed Oct 04, 2006 8:50 pm
by Trond
Yes, but when you use the create executable menu item from the IDE the debugger is always disabled.

Posted: Wed Oct 04, 2006 9:31 pm
by Character
this way I get an Exitcode of 1

Code: Select all

Debug "Running Java" 
JavaP = RunProgram("java", "-showversion", "",#PB_Program_Hide|#PB_Program_Open|#PB_Program_Read) 

If IsProgram(JavaP) 
  While ProgramRunning(JavaP) 
    Debug ReadProgramString(JavaP) 
  Wend 
  Debug "Exitcode: " + Str(ProgramExitCode(JavaP)) 
Else 
  Debug "not a program" 
EndIf 
now without the helptext crap (displayed on my machine instead of the 'version text' when called through a console..)

Code: Select all

Debug "Running Java" 
JavaP = RunProgram("java", "-showversion>dump.txt", "",#PB_Program_Hide|#PB_Program_Open|#PB_Program_Read) 

If IsProgram(JavaP) 
  While ProgramRunning(JavaP) 
    Debug ReadProgramString(JavaP) 
  Wend 
  Debug "Exitcode: " + Str(ProgramExitCode(JavaP)) 
Else 
  Debug "not a program" 
EndIf 
all works in a console() but when using the debugger the java thing is already closed for ages when you start purebasing with it
when used '-showversion' the java thing halts execution but only displays the correct version in a console again, not in the debugger....
?
(I'm lost... )

Posted: Thu Oct 05, 2006 9:47 am
by porfirio
If i run java with no argument, it works and display all the help thing on the debugger

If i put any java file to be runned or a jar or something, it shows the output too

It just dont show the output with -version parameter lol

Very wheird...

Edit:

either :

Code: Select all

Debug "Running Java"
JavaP = RunProgram("cmd", "/r java -version", "",#PB_Program_Hide|#PB_Program_Open|#PB_Program_Read)

If IsProgram(JavaP)
  While ProgramRunning(JavaP)
    Debug ReadProgramString(JavaP)
  Wend
  Debug "Exitcode: " + Str(ProgramExitCode(JavaP))
Else
  Debug "not a program"
EndIf 
Dont give the output too again if i dont put -version it displays java help

Edit again:

Theres something wrong with java.exe lol

java -showversion>out.txt

Get all java help shit on the txt and the version printed on the window!!

Oh god looks like i have to give up :S

Posted: Thu Oct 05, 2006 11:20 am
by porfirio
Just found a quick solution for get the jre version

Created a small class file that will be included on the exe using this code
javac Test.java

Code: Select all

public class Test{
   public static void main(String[] args){
      System.out.println(System.getProperty("java.vm.version"));
   }
}
then i have this code on my app

Code: Select all

Procedure TestJava(v.s)
  JavaP = RunProgram("java", "Test", "",#PB_Program_Hide|#PB_Program_Open|#PB_Program_Read)
  If IsProgram(JavaP) 
    res.s=ReadProgramString(JavaP)
    res=Left(res,5)
    If Val(StringField(res,1,"."))>=Val(StringField(v,1,"."))
      If Val(StringField(res,2,"."))>=Val(StringField(v,2,"."))
        If Val(StringField(res,3,"."))>=Val(StringField(v,3,"."))
          ProcedureReturn #True
        EndIf 
      EndIf 
    EndIf 
    ProcedureReturn #False
  Else
    ProcedureReturn #False
  EndIf
  ProcedureReturn #False
EndProcedure

If TestJava("1.6.0")
  MessageRequester("Java Test","You have a good java version")
Else
  Select MessageRequester("Java Tester", "You dont have Java, or your java Version is outdated" + Chr(10) + "Want to go to Java Website to ge the lastest one?", #MB_YESNO|#MB_ICONQUESTION)
    Case #IDYES
      RunProgram("http://java.com/")
  EndSelect
EndIf
Of course that this will be more worked
Thanks in the same way guy's :)