Exec cmd echo for beep with java on linux

N

Nanou

Hello,


I want to execute the command echo -e "\a" ( this command produce a
beep)from a java program whit Runtime.getRuntime().exec(); but it's
doesn't work. I don't heard the sound.
I can't use Toolkit.getDefaultToolkit().beep(); because under linux
this function have not effect.

OS: Mandriva Linux
JDK 1.5

Any help will be welcome.
Thanks
 
O

Oliver Wong

Nanou said:
Hello,


I want to execute the command echo -e "\a" ( this command produce a
beep)from a java program whit Runtime.getRuntime().exec(); but it's
doesn't work. I don't heard the sound.
I can't use Toolkit.getDefaultToolkit().beep(); because under linux
this function have not effect.

OS: Mandriva Linux
JDK 1.5

Any help will be welcome.
Thanks

If it's absolutely a mission critical requirement that a beep be
produced, then you'll have to ship custom hardware with your product. I have
a few computers, for example, with no speakers on them at all (not even the
"PC Speaker" normally attached to a motherboard), so it doesn't matter what
code you write in what language: no beep will be generated on these
machines.

If it isn't that essential, then maybe you shouldn't worry too much
about beeps not being produced under some architectures using
"Toolkit.getDefaultToolkit().beep()".

- Oliver
 
K

Knute Johnson

Nanou said:
Hello,


I want to execute the command echo -e "\a" ( this command produce a
beep)from a java program whit Runtime.getRuntime().exec(); but it's
doesn't work. I don't heard the sound.
I can't use Toolkit.getDefaultToolkit().beep(); because under linux
this function have not effect.

OS: Mandriva Linux
JDK 1.5

Any help will be welcome.
Thanks

This should do what you need.

knute...

import javax.sound.sampled.*;

public class Tone {
public static void sound(int hz,int msecs) throws
LineUnavailableException {
byte[] buf = new byte[msecs*8];

for (int i=0; i<buf.length; i++) {
double angle = i / (8000.0 / hz) * 2.0 * Math.PI;
buf = (byte)(Math.sin(angle) * 80.0);
}

AudioFormat af = new AudioFormat(8000f,8,1,true,false);
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
sdl.open(af);
sdl.start();
sdl.write(buf,0,buf.length);
sdl.drain();
sdl.close();
}

public static void main(String[] args) {
try {
Tone.sound(2000,150);
} catch (LineUnavailableException lue) {
System.out.println(lue);
}
}
}
 
G

Gordon Beaton

I want to execute the command echo -e "\a" ( this command produce a
beep)from a java program whit Runtime.getRuntime().exec(); but it's
doesn't work. I don't heard the sound.

All it does is print the character value 7 to the terminal, which
interprets the character and rings the bell.

You can do it directly from Java like this:

System.out.print('\0007');

Whether or not this actually creates any sound depends on your
terminal.

/gordon
 
D

Dave Glasser

All it does is print the character value 7 to the terminal, which
interprets the character and rings the bell.

You can do it directly from Java like this:

System.out.print('\0007');

Whether or not this actually creates any sound depends on your
terminal.

And furthermore, Nanou, the reason you didn't hear the beep with
Runtime.getRuntime().exec() is that the STDOUT stream of the exec'ed
process is captured, rather than sent to the console. You can read it
with the InputStream returned by Process.getInputStream(). That's why
stuff like redirect characters (">" and ">>") or pipes on the command
line don't work as expected with Runtime.exec().


--
Check out QueryForm, a free, open source, Java/Swing-based
front end for relational databases.

http://qform.sourceforge.net

If you're a musician, check out RPitch Relative Pitch
Ear Training Software.

http://rpitch.sourceforge.net
 
R

Roedy Green

I want to execute the command echo -e "\a" ( this command produce a
beep)from a java program whit Runtime.getRuntime().exec(); but it's
doesn't work. I don't heard the sound.
I can't use Toolkit.getDefaultToolkit().beep(); because under linux
this function have not effect.

there is one more thing easier to try. see
http://mindprod.com/jgloss/beep.html

See http://mindprod.com/jgloss/exec.html
if that does not work. Echo may be an internal command. If it is you
will need to spawn a command interperter.

Shade of Monty Python and the machine that goes beep.
 
R

Roedy Green

I dare say you are becoming confused between the threads/quotes.

Ping?
<http://groups.google.com/group/comp...f3fc271a3b9e4b?q=ping&rnum=1#3df3fc271a3b9e4b>

If this exchange is sailing over your head, you probably have not yet
seen the classic Monty Python movie, the Meaning of Life.

Some dialog from it is quoted here:
http://sfy.ru/sfy.html?script=mp_meanlife
More apparatus please, nurse.
And, uh, get the machine that goes 'ping'.


That leads to the slightly OT discussion. You can't do a true ping in
Java, but can you in Python?
 
P

Pradyut

Nanou said:
Hello,


I want to execute the command echo -e "\a" ( this command produce a
beep)from a java program whit Runtime.getRuntime().exec(); but it's
doesn't work. I don't heard the sound.
I can't use Toolkit.getDefaultToolkit().beep(); because under linux
this function have not effect.

OS: Mandriva Linux
JDK 1.5

Any help will be welcome.
Thanks

I don't know about linux but under windows to execute we use

code1: -
----------------------------------------------
//import java.io.*;

public class RunExec
{
public static void main(String args[])
{
String path="http://pradyut.tk";
try
{
Process p = Runtime.getRuntime().exec("RunDLL32.EXE
shell32.dll,ShellExec_RunDLL " + path);
}
catch(Exception e )
{
System.err.println(e);
}
}
}
-------------------------------------------------------

code2: -
--------------------------------------------------------
public class RunExec1
{
public static void main(String args[])
{
String path="http://pradyut.tk";
try
{
Runtime.getRuntime().exec( "rundll32 url.dll,FileProtocolHandler
http://yahoo.com" );
}
catch(Exception e )
{
System.err.println(e);
}
}
}
--------------------------------------------------------------

thanks

Pradyut
http://pradyut.tk
http://spaces.msn.com/members/oop-edge/
http://groups-beta.google.com/group/oop_programming
India
 
P

Pradyut

Nanou said:
Hello,


I want to execute the command echo -e "\a" ( this command produce a
beep)from a java program whit Runtime.getRuntime().exec(); but it's
doesn't work. I don't heard the sound.
I can't use Toolkit.getDefaultToolkit().beep(); because under linux
this function have not effect.

OS: Mandriva Linux
JDK 1.5

Any help will be welcome.
Thanks

I don't know about linux but under windows to execute we use

code1: -
----------------------------------------------
//import java.io.*;

public class RunExec
{
public static void main(String args[])
{
String path="http://pradyut.tk";
try
{
Process p = Runtime.getRuntime().exec("RunDLL32.EXE
shell32.dll,ShellExec_RunDLL " + path);
}
catch(Exception e )
{
System.err.println(e);
}
}
}
-------------------------------------------------------

code2: -
--------------------------------------------------------
public class RunExec1
{
public static void main(String args[])
{
String path="http://pradyut.tk";
try
{
Runtime.getRuntime().exec( "rundll32 url.dll,FileProtocolHandler
http://yahoo.com" );
}
catch(Exception e )
{
System.err.println(e);
}
}
}
--------------------------------------------------------------

thanks

Pradyut
http://pradyut.tk
http://spaces.msn.com/members/oop-edge/
http://groups-beta.google.com/group/oop_programming
India
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top