Newsgroup: it.comp.java
Titolo: E' possibile nascondere il Prompt?

Facendo partire un'applicazione java da un file .bat parte
automaticamente in sottofondo il prompt, è possibile nasconderlo? Su
piattaforme come Win200pro e Xp che codice devo inserire nel .bat?
Grazie Pietro.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Se usi jview, jre o java per lanciare la tua applicazione puoi 
nascondere la finestra cambiando le proprieta' del batch file (tasto 
destro sul batch file Proprieta'->Programma->Esegui->Ridotta a icona). 
La finestra ci sara' ma sara' ridotta ad icona. Potresti usa wjview e se 
non hai System.out.print(ln) la finestra non dovrebbe apparire.
GC


Su win200pro con il tasto destro non riesci a dargli quel comando... :-(


ascoltando il vento dell'est udii Pietro Peroni che diceva queste
parole
| Facendo partire un'applicazione java da un file .bat parte
| automaticamente in sottofondo il prompt, è possibile nasconderlo? Su
| piattaforme come Win200pro e Xp che codice devo inserire nel .bat?
| Grazie Pietro.
credo che basti lanciare l'applicazione con javaw invece che java
javaw MiaClasse
In alternativa, mi sa che se fai un jar, usando alcune opzioni del manifesto
puoi fare in modo che l'applicativo si lanci :
1- senza aprire il prompt
2- semplicemente con un doppio click sul .jar
--
"...Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno
sprovveduto che non lo sa e la inventa...".
             Albert Einstein

Puoi anche usare getRuntime().execute(..) ecco un pezzettino di codice:
Nota: questa classe, con le opportune modifiche la inserisci nella main 
class, ti aiuta a impostare dinamicamente le librerie jar. E' una 
soluzione sporca ma fa il suo lavoro. Le variazioni al tema sono libere :-P
class RunHelper {
         private String cpSeparator = System.getProperty("path.separator");
         private String javaHome = System.getProperty("java.home");
         private String fileSeparator = 
System.getProperty("file.separator");
         public static final String DEFAULT_EXT_PATH = "lib/ext/";
         public static final String DEFAULT_LIB_PATH = "lib/";
         RunHelper(String[] args) {
             try {
                 String arguments = "";
                 String cp = "";
                 for (int i = 0; i < args.length; i++)
                     arguments = arguments + args[i] + " ";
                 java.util.Iterator iter = getJars().iterator();
                 while (iter.hasNext()) {
                     if (cp.equals(""))
                         cp = (String)iter.next();
                     else
                         cp = cp + cpSeparator + (String)iter.next();
                 }
                 String command = javaHome + fileSeparator + "bin" + 
fileSeparator +
                     "java -cp " + cp + " " +
                     "com.wingstech.kdashboard.classes.Main"
                      + " -x " + arguments;
                 System.out.println("Running: \"" + command + "\""); 
                 java.lang.Runtime.getRuntime().exec(command);
                 System.exit(0);
             } catch ( java.io.IOException e  ) {
                 System.err.println("Error in reopening jvm" + 
e.getMessage());
             }
             return;
             //------------execute real application
         }
         public java.util.Vector getJars() {
             java.util.Vector jarUrls = new java.util.Vector();
             jarUrls.add("KDashboardLite.jar");
             String[] packages;
             java.io.File dir;
             dir = new java.io.File(DEFAULT_LIB_PATH);
             packages = dir.list(); 
             for (int i = 0; i<packages.length; i++) {
                 if (packages[i].endsWith(".jar")) {
                     jarUrls.add(dir.toString() + fileSeparator + 
packages[i]);
                 }
             }
             dir = new java.io.File(DEFAULT_EXT_PATH);
             packages = dir.list(); 
             for (int i = 0; i<packages.length; i++) {
                 if (packages[i].endsWith(".jar")) {
                     jarUrls.add(dir.toString() + fileSeparator + 
packages[i]);
                 }
             }
             return jarUrls;
         }
     }
     class RunHelper {
         private String cpSeparator = System.getProperty("path.separator");
         private String javaHome = System.getProperty("java.home");
         private String fileSeparator = 
System.getProperty("file.separator");
         public static final String DEFAULT_EXT_PATH = "lib/ext/";
         public static final String DEFAULT_LIB_PATH = "lib/";
         RunHelper(String[] args) {
             try {
                 String arguments = "";
                 String cp = "";
                 for (int i = 0; i < args.length; i++)
                     arguments = arguments + args[i] + " ";
                 java.util.Iterator iter = getJars().iterator();
                 while (iter.hasNext()) {
                     if (cp.equals(""))
                         cp = (String)iter.next();
                     else
                         cp = cp + cpSeparator + (String)iter.next();
                 }
                 String command = javaHome + fileSeparator + "bin" + 
fileSeparator +
                     "java -cp " + cp + " " +
                     "com.wingstech.kdashboard.classes.Main"
                      + " -x " + arguments;
                 System.out.println("Running: \"" + command + "\""); 
                 java.lang.Runtime.getRuntime().exec(command);
                 System.exit(0);
             } catch ( java.io.IOException e  ) {
                 System.err.println("Error in reopening jvm" + 
e.getMessage());
             }
             return;
             //------------execute real application
         }
         public java.util.Vector getJars() {
             java.util.Vector jarUrls = new java.util.Vector();
             jarUrls.add("KDashboardLite.jar");
             String[] packages;
             java.io.File dir;
             dir = new java.io.File(DEFAULT_LIB_PATH);
             packages = dir.list(); 
             for (int i = 0; i<packages.length; i++) {
                 if (packages[i].endsWith(".jar")) {
                     jarUrls.add(dir.toString() + fileSeparator + 
packages[i]);
                 }
             }
             dir = new java.io.File(DEFAULT_EXT_PATH);
             packages = dir.list(); 
             for (int i = 0; i<packages.length; i++) {
                 if (packages[i].endsWith(".jar")) {
                     jarUrls.add(dir.toString() + fileSeparator + 
packages[i]);
                 }
             }
             return jarUrls;
         }
     }
=============================================================================================
public class Main extends javax.swing.JFrame {
   public static void main(String args[]) {
         boolean execute = false;
         for (int i = 0; i < args.length; i++) {
             if (args[i].equals("-x")) {
                 execute = true;
                 break;
             }
         }
         if (!execute)
             if (!debug)
                 new Main(args, true);
             else
                 new Main(args).show();
         else
             new Main(args).show();
   }
}

 
Per il jar hai ragione (vedi quello di esempio nel jdk per le swing), per 
l'altro caso credo che sia necessario fare uno "start javaw ....."

ascoltando il vento dell'est udii Cricco che diceva queste parole
-cut
||
|| credo che basti lanciare l'applicazione con javaw invece che java
||
-cut
|
| Per il jar hai ragione (vedi quello di esempio nel jdk per le swing),
| per l'altro caso credo che sia necessario fare uno "start javaw ....."
grazie della precisazione.