Not a tile, a char neither a monster. The old friend of mine Boris, now in pixels.
carbon-based lifeform. virgo supercluster
Not a tile, a char neither a monster. The old friend of mine Boris, now in pixels.
I created some illustrative and simple implementations of common Unix commands. For those who are familiar with Unix-like systems them make easier to understand Java. For those who are familiar with Java them make easier to understand Unix-like systems. :-)
1. PWD
The first one is pwd that show the current working directory.
public class Jpwd { public static void main(String[] args) { String pwd = System.getProperty("user.dir"); System.out.println(pwd); } } |
Running this at /home/silveira directory gives us as output:
$ java Jpwd
/home/silveira
1. CAT
The command cat is usually utilized for displaying files.
import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Jcat { public static void main(String[] args) { if(args.length==1){ try { FileReader fileReader = new FileReader(args[0]); BufferedReader in = new BufferedReader(fileReader); String line; while((line = in.readLine())!= null){ System.out.println(line); } } catch (FileNotFoundException ex) { System.out.println(args[0]+", file not found."); } catch (IOException ex) { System.out.println(args[0]+", input/output error."); } } } } |
$ java Jcat /etc/timezone
America/Fortaleza
3. LS
The command ls is to list files. The File API (java.io.File) is very flexible and portable, but in this example I want just list files and directories of the current directory.
import java.io.File; public class Jls { public static void main(String[] args) { File dir = new File(System.getProperty("user.dir")); String childs[] = dir.list(); for(String child: childs){ System.out.println(child); } } } |
Usage:
$ java Jpwd
/home/silveira/example
$ java Jls
directoryA
fileA
.somefile
4. CD
The cd command changes the current working directory.
import java.io.File; public class Jcd { public static void main(String[] args) { if(args.length==1){ File dir = new File(args[0]); if(dir.isDirectory()==true) { System.setProperty("user.dir", dir.getAbsolutePath()); } else { System.out.println(args[0] + "is not a directory."); } } } } |
Usage:
$ java Jpwd
/home/silveira
$ java Jcd /tmp
$ java Jpwd
/tmp
Boris, refletindo sobre a vida…
Boris Wilson, originally uploaded by Silveira Neto.
Boris, thinking about life…
Boris Wilson, my girlfriend’s pet, a siamese cat. He loves play in a new box.
Lembra daquele nosso gato em Java FX? Agora ele move os olhos com cliques em botões.
Código fonte:
import javafx.ui.canvas.*; import javafx.ui.*; class Cat extends CompositeNode{ attribute look: Number; // -1.0 to 1.0 operation lookLeft(); operation lookCenter(); operation lookRight(); } attribute Cat.look = 0; // 0 = middle operation Cat.lookLeft(){ look = [look, look - 0.1 .. -1.0] dur 1000; } operation Cat.lookCenter(){ var step = if look < 0 then 0.1 else -0.1; look = [look, look+step .. 0.0] dur 1000; } operation Cat.lookRight(){ look = [look, look + 0.1 .. 1.0] dur 1000; } function Cat.composeNode(){ var head = Ellipse {cx:100, cy:100, radiusX:100, radiusY:50, fill:black }; var rightEar = Arc {x:100, y:10, height:150, width:100, startAngle:-20, length:90, closure:PIE, fill:black}; var leftEar = Arc {x:000, y:10, height:150, width:100, startAngle:110, length:90, closure:PIE, fill:black}; var leftEye = Ellipse { cx:60, cy:100, radiusX:30, radiusY:15, fill:white}; var rightEye = Ellipse { cx:140, cy:100, radiusX:30, radiusY:15, fill:white}; var nose = Arc { x:85, y:110, height:20, width:30, startAngle:45, length:90, closure:PIE, fill:white}; var rightIris = Ellipse { cx: bind 140+look*20, cy:100, radiusX:5, radiusY:15, fill:black}; var leftIris = Ellipse { cx: bind 60+look*20, cy:100, radiusX:5, radiusY:15, fill:black}; return Group{content: [head, rightEar, leftEar, leftEye, leftIris, rightEye, rightIris, nose]}; } var myCat = Cat{}; var myCatControl = View { transform: [translate(0, 150)] content: GroupPanel { cursor: DEFAULT var row = Row {alignment: BASELINE} var column1 = Column { } var column2 = Column { } var column3 = Column { } var column4 = Column { } var column5 = Column { } rows: [row] columns: [column1, column2, column3, column4] content: [SimpleLabel { row: row column: column1 text: "Look:" }, Button { row: row column: column2 mnemonic: L text: "Left" action: operation() { myCat.lookLeft(); } }, Button { row: row column: column3 mnemonic: C text: "Center" action: operation() { myCat.lookCenter(); } }, Button { row: row column: column4 mnemonic: R text: "Right" action: operation() { myCat.lookRight(); } }] } }; Canvas { content: [myCatControl, myCat] } |
Downloads: