Exec cmd echo for beep with java on linux

Discussion in 'Java' started by Nanou, Oct 20, 2005.

  1. Nanou

    Nanou Guest

    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, Oct 20, 2005
    #1
    1. Advertising

  2. Nanou

    Oliver Wong Guest

    "Nanou" <> wrote in message
    news:...
    > 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, Oct 20, 2005
    #2
    1. Advertising

  3. 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 = (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, Oct 20, 2005
    #3
  4. 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, Oct 20, 2005
    #4
  5. Nanou

    Dave Glasser Guest

    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, Oct 20, 2005
    #5
  6. 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, Oct 20, 2005
    #6
  7. Nanou

    Roedy Green Guest

    What the beep

    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, Oct 21, 2005
    #7
  8. Re: What the beep

    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, Oct 21, 2005
    #8
  9. Nanou

    Roedy Green Guest

    Re: What the beep

    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, Oct 21, 2005
    #9
  10. Nanou

    Nanou Guest

    Thanks you very much, that's good for me.
    Nanou, Oct 21, 2005
    #10
  11. Nanou

    Pradyut Guest

    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


    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
    Pradyut, Oct 21, 2005
    #11
  12. Nanou

    Pradyut Guest

    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


    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
    Pradyut, Oct 21, 2005
    #12
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Leszek Dubiel
    Replies:
    3
    Views:
    9,810
  2. Achim Domma (Procoders)

    read input for cmd.Cmd from file

    Achim Domma (Procoders), Jun 3, 2005, in forum: Python
    Replies:
    2
    Views:
    8,068
    Peter Otten
    Jun 3, 2005
  3. Sarir Khamsi

    Interpreter-like help in cmd.Cmd

    Sarir Khamsi, Jun 9, 2005, in forum: Python
    Replies:
    4
    Views:
    371
    Bengt Richter
    Jun 26, 2005
  4. =?ISO-8859-1?Q?Sch=FCle_Daniel?=

    [exec cmd for cmd in cmds]

    =?ISO-8859-1?Q?Sch=FCle_Daniel?=, Mar 8, 2006, in forum: Python
    Replies:
    3
    Views:
    387
    Scott David Daniels
    Mar 8, 2006
  5. Replies:
    4
    Views:
    24,071
    vivek_kothari
    Jan 12, 2010
Loading...

Share This Page