Você não pode simplesmente abrir um arquivo aleatório e esperar que ele funcione. (Na verdade, você deve abrir cada um deles, até encontrar um que seja gratuito). Em vez disso, use a sintaxe socat
adequada para ele:
socat PTY,link=/tmp/mytty TCP:192.168.254.106:8080
Isso abrirá o lado mestre de um pseudo-terminal disponível, criará um link simbólico em /tmp/mytty
(modifique conforme apropriado) para o lado escravo e encaminhará entre o lado mestre e sua porta TCP remota.
Agora você pode usar /tmp/mytty
(ou o slave-pty vinculado a ele) como um tty normal. ("Virtual local comport" soa suspeitamente como um termo do Windows).
BTW, isso funcionará em todas as plataformas que suportam pseudo-terminais, porque socat
usa o método adequado à plataforma.
Editar
O que você vê como uma opção no programa Java que você executa depende inteiramente do programa Java que você executa, sobre o qual eu não sei nada (e você não nos disse nada sobre). É perfeitamente possível que o programa Java tenha opções adicionais para informá-lo sobre outros programas. Também é possível que não tenha essas opções.
Os arquivos em /dev
fazem parte de um sistema de arquivos especial chamado devfs
, que mostra os dispositivos disponíveis para o kernel. Aparentemente você não tem permissão para criar links simbólicos.
Portanto, se todo o seu programa Java fizer a varredura de arquivos /dev/cu.*
, você estará sem sorte.
Você sempre pode tentar encontrar o código-fonte do seu programa Java e alterá-lo. Ou até mesmo corrigir o binário (substitua a string /dev/cu
por outra coisa).