all groups > vj# > december 2003 >
You're in the

vj#

group:

j# Browser Control



j# Browser Control udi NO[at]SPAM netmanage.co.il
12/29/2003 10:31:48 PM
vj#: Hello,

I've converted a J++ Applet to j#. I really miss the Java console...
Does anyone know where is or how to open a Java console for j# Browser controls
(where I can see all the Console.WriteLine... )?

Thanks,
Re: j# Browser Control Console udi NO[at]SPAM netmanage.co.il
1/5/2004 3:18:22 AM
[quoted text, click to view]


Hi... maybe the question was not clear... when I run/debug J# browser
controls there is no console window which make it very hard to debug.

If anyone can help me find a way to activate a console window for JBC
it will be greatlly appriciated.

Thanks,
Udi Zisser,
Re: j# Browser Control Console rlacas NO[at]SPAM online.microsoft.com
1/5/2004 6:00:31 PM
You might try Debug.WriteLine() from the System.Diagnostics namespace.
This prints to the output window in the VS.NET IDE.

[quoted text, click to view]

Bob LaCasse
Microsoft Developer Support - Visual J#.NET

This posting is provided AS IS with no warranties, and confers no rights.
Re: j# Browser Control Console udi NO[at]SPAM netmanage.co.il
1/6/2004 1:01:12 AM
Thanks for the reply.
The thing is that I have a very large application to migrate (I'm
talking about 30 packages-> ~50MB of pure code).
It will be impossible for me to replace all the "printStackTrace" and
"System.out..." with Debug.WriteLine().

From your reply I can understand that there is no "Java Console"
equivalent in JBC... If this is true, my life are going to be very
difficult in the next few week...

Thanks again,
Udi Zisser
Netmanage Inc.
udi@netmanage.co.il

[quoted text, click to view]
Re: j# Browser Control Console udi NO[at]SPAM netmanage.co.il
1/7/2004 5:56:46 AM
BTW... Debug.WriteLine() is nowhere to be found in j#'s System.Diagnostics...
Thanks,
Udi.

[quoted text, click to view]
Re: j# Browser Control Console udi NO[at]SPAM netmanage.co.il
1/7/2004 6:26:35 AM
Thank you for the input! I will try it asap.

This is really bad... When migrating large projects one cannot be
expected to make a lot of code changes, its all or nothing -> going
though thousands of code lines so the information from exceptions be
directed to the output window
is not feasible.

Especialy when migrating it is expected to be a bumpy trail (unline
the cute video by Mr. Brian. K) and the information from the "java
console" is a very important tool.

Thanks,
Udi Zisser


[quoted text, click to view]
..
..
Re: j# Browser Control Console jkatti.vjcr NO[at]SPAM online.microsoft.com
1/7/2004 9:23:15 AM
Hello Udi:

No, Java Console is not supported in JBC. However, on your
development/debugging machine, you can try the following from command
prompt:
IExplore.exe "url" > ConsoleLog.txt

Basically, you can redirect the console output to a file.

Hope this helps.

Thanks
Jayu

--------------------
[quoted text, click to view]
<e3811db3.0401050318.294eeef9@posting.google.com>
<nVQkSX70DHA.3064@cpmsftngxa07.phx.gbl>
[quoted text, click to view]
cpmsftngxa07.phx.gbl!cpmsftngxa10.phx.gbl!TK2MSFTNGXA06.phx.gbl!TK2MSFTNGXA0
5.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed00.sul.t-online.de!t-online.de!newsfe
ed.icl.net!newsfeed.fjserv.net!proxad.net!news-out.visi.com!petbe.visi.com!n
ewsfeed2.dallas1.level3.net!news.level3.com!postnews1.google.com!not-for-mai
l
[quoted text, click to view]
Re: j# Browser Control Console udi NO[at]SPAM netmanage.co.il
1/8/2004 2:06:03 AM
Oops... found it... sorry.
[quoted text, click to view]
Re: j# Browser Control Console rlacas NO[at]SPAM online.microsoft.com
1/10/2004 1:44:28 AM
Hello - You might write a custom print stream and reset standard out. The
printStackTrace API prints to the standard output stream, which is a print
stream held in System.out. I think the best way to re-direct would be to
do a custom print stream that writes/prints to a simple stand-alone app,
perhaps through a socket connection ... a sort of exception log server ...

[quoted text, click to view]

Bob LaCasse
Microsoft Developer Support - Visual J#.NET

This posting is provided AS IS with no warranties, and confers no rights.
Re: j# Browser Control Console udi NO[at]SPAM netmanage.co.il
1/11/2004 5:53:48 AM
After much searching, browsing, emails... I've got it...
Microsoft did not implement the "Java console" for j# Browser Controls
and maybe never will...

I've came across source code for simple java console at:
http://alpha.comweb.nl/java/Console/Console.html

and compiled it into my project.
How to use:
1) install Microsoft Supplemental UI Library for Visual J# .NET v1.1
from: http://www.microsoft.com/downloads/details.aspx?FamilyId=789DAC0D-2CCF-4021-A943-A1C4802E1568&displaylang=en
(for swing support)

2) add the following source code to your project
3) add: "new console()" to constructor or where ever fit.
4) enjoy!
5) remove after all bugs are dead.
6) you can skip step 5 and include the code in your Debug class if
exists.

Source Code:
//
// A simple Java Console for your application (Swing version)
// Requires Java 1.1.5 or higher
//
// Disclaimer the use of this source is at your own risk.
//
// Permission to use and distribute into your own applications
//
// RJHM van den Bergh , rvdb@comweb.nl

package walldata.WDContainer;

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Console extends WindowAdapter implements WindowListener,
ActionListener, Runnable
{
private JFrame frame;
private JTextArea textArea;
private Thread reader;
private Thread reader2;
private boolean quit;

private final PipedInputStream pin=new PipedInputStream();
private final PipedInputStream pin2=new PipedInputStream();

Thread errorThrower; // just for testing (Throws an Exception at this
Console

public Console()
{
// create all components and add them
frame=new JFrame("Java Console");
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=new
Dimension((int)(screenSize.width/2),(int)(screenSize.height/2));
int x=(int)(frameSize.width/2);
int y=(int)(frameSize.height/2);
frame.setBounds(x,y,frameSize.width,frameSize.height);

textArea=new JTextArea();
textArea.setEditable(false);
JButton button=new JButton("clear");

frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(new
JScrollPane(textArea),BorderLayout.CENTER);
frame.getContentPane().add(button,BorderLayout.SOUTH);
frame.setVisible(true);

frame.addWindowListener(this);
button.addActionListener(this);

try
{
PipedOutputStream pout=new PipedOutputStream(this.pin);
System.setOut(new PrintStream(pout,true));
}
catch (java.io.IOException io)
{
textArea.append("Couldn't redirect STDOUT to this
console\n"+io.getMessage());
}
catch (SecurityException se)
{
textArea.append("Couldn't redirect STDOUT to this
console\n"+se.getMessage());
}

try
{
PipedOutputStream pout2=new PipedOutputStream(this.pin2);
System.setErr(new PrintStream(pout2,true));
}
catch (java.io.IOException io)
{
textArea.append("Couldn't redirect STDERR to this
console\n"+io.getMessage());
}
catch (SecurityException se)
{
textArea.append("Couldn't redirect STDERR to this
console\n"+se.getMessage());
}

quit=false; // signals the Threads that they should exit

// Starting two separate threads to read from the PipedInputStreams
//
reader=new Thread(this);
reader.setDaemon(true);
reader.start();
//
reader2=new Thread(this);
reader2.setDaemon(true);
reader2.start();


errorThrower=new Thread(this);
errorThrower.setDaemon(true);
errorThrower.start();
}

public synchronized void windowClosed(WindowEvent evt)
{
quit=true;
this.notifyAll(); // stop all threads
try { reader.join(1000);pin.close(); }
catch (Exception e){}
try { reader2.join(1000);pin2.close(); }
catch (Exception e){}
System.exit(0);
}

public synchronized void windowClosing(WindowEvent evt)
{
frame.setVisible(false); // default behaviour of JFrame
frame.dispose();
}

public synchronized void actionPerformed(ActionEvent evt)
{
textArea.setText("");
}

public synchronized void run()
{
try
{
while (Thread.currentThread()==reader)
{
try { this.wait(100);}
catch(InterruptedException ie) {}
if (pin.available()!=0)
{
String input=this.readLine(pin);
textArea.append(input);
}

if (quit) return;
}
while (Thread.currentThread()==reader2)
{
try
{
this.wait(100);
}
catch(InterruptedException ie) {}

if (pin2.available()!=0)
{
String input=this.readLine(pin2);
textArea.append(input);
}

if (quit) return;
}
}
catch (Exception e)
{
textArea.append("\nConsole reports an Internal error.");
textArea.append("The error is: "+e);
}
}

public synchronized String readLine(PipedInputStream in) throws
IOException
{
String input="";
do
{
int available=in.available();
if (available==0) break;
byte b[]=new byte[available];
in.read(b);
input=input+new String(b,0,b.length);
} while( !input.endsWith("\n") && !input.endsWith("\r\n") && !quit);
return input;
}

AddThis Social Bookmark Button