![]() |
|
|
|||||||
![]() |
Java - Exec cmd echo for beep with java on linux |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
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 Nanou |
|
|
|
|
#2 |
|
Posts: n/a
|
"Nanou" <> wrote in message
news: oups.com... > 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 Oliver Wong |
|
|
|
#3 |
|
Posts: n/a
|
Nanou wrote:
> 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[i] = (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); } } } -- Knute Johnson email s/nospam/knute/ Knute Johnson |
|
|
|
#4 |
|
Posts: n/a
|
On 20 Oct 2005 09:49:51 -0700, Nanou wrote:
> 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 -- [ do not email me copies of your followups ] g o r d o n + n e w s @ b a l d e r 1 3 . s e Gordon Beaton |
|
|
|
#5 |
|
Posts: n/a
|
Gordon Beaton <> wrote on 20 Oct 2005 20:35:14 +0200 in
comp.lang.java.programmer: >On 20 Oct 2005 09:49:51 -0700, Nanou wrote: >> 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. 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 Dave Glasser |
|
|
|
#6 |
|
Posts: n/a
|
On 20 Oct 2005 20:35:14 +0200, Gordon Beaton wrote:
> System.out.print('\0007'); Sorry! Should have been System.out.print('\u0007'); /gordon -- [ do not email me copies of your followups ] g o r d o n + n e w s @ b a l d e r 1 3 . s e Gordon Beaton |
|
|
|
#7 |
|
Posts: n/a
|
On 20 Oct 2005 09:49:51 -0700, "Nanou" <> wrote
or quoted : >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. -- Canadian Mind Products, Roedy Green. http://mindprod.com Again taking new Java programming contracts. Roedy Green |
|
|
|
#8 |
|
Posts: n/a
|
Roedy Green wrote:
> Shade of Monty Python and the machine that goes beep. I dare say you are becoming confused between the threads/quotes. Ping? <http://groups.google.com/group/comp.lang.java.programmer/browse_frm/thread/3aa4e0abf416d49f/3df3fc271a3b9e4b?q=ping&rnum=1#3df3fc271a3b9e4b> Andrew Thompson |
|
|
|
#9 |
|
Posts: n/a
|
On Fri, 21 Oct 2005 01:45:48 GMT, Andrew Thompson
<> wrote or quoted : >> Shade of Monty Python and the machine that goes beep. > >I dare say you are becoming confused between the threads/quotes. > >Ping? ><http://groups.google.com/group/comp.lang.java.programmer/browse_frm/thread/3aa4e0abf416d49f/3df3fc271a3b9e4b?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? -- Canadian Mind Products, Roedy Green. http://mindprod.com Again taking new Java programming contracts. Roedy Green |
|
|
|
#10 |
|
Posts: n/a
|
Thanks you very much, that's good for me.
Nanou |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| What Is Linux? | Andrew.Robinson.group.com@gmail.com | DVD Video | 0 | 12-31-2007 03:06 PM |
| Suse Linux and Red Hat Linux | Raymond | A+ Certification | 3 | 07-16-2004 01:41 AM |
| Re: Dual booting W2K and Linux on TWO HDs | Tom MacIntyre | A+ Certification | 0 | 08-06-2003 11:29 PM |