Haxeでは制作できるのは、JavaScriptや、Flash、スマホアプリだけではありません。Neko出力を使うことで簡単にコマンドラインツールを制作することが出来ます。
FlashDevelopにはHaxe/Nekoのプロジェクトがあるので、これを選択することで簡単にHaxe/Nekoのツールを制作することができます
#こんにちは!!
srcフォルダに以下のようなHaxeファイルを書きます。
src/Main.hx
class Main {
static function main(){
Sys.println( "こんにちは!!" );
}
}
##HaxeからNekoへコンパイルする。
コマンドラインからコンパイルする場合、以下のようなコマンドを使います
haxe -cp [ソースの入ったフォルダ] -main [メインクラス] -neko [出力ファイル(*.n) ]
例:
haxe -cp src -main Main -neko test.n
##生成したNekoファイルを実行する。
さきほどの例で生成したtest.nファイルは以下のコマンドで実行できます。
neko test.n
こんにちは!!
#基本的な使い方
##標準出力
class Main {
static function main() {
Sys.print( "Hello, " ); //Helloを出力
Sys.println( "World" ); //Worldを出力して改行
}
}
##パラメータを取得
Sys.args()関数を使うことで、パラメータとして与えられた文字列を取得することが出来ます。
class Main {
static function main() {
var args = Sys.args();
Sys.println( args[0] + ", " + args[1] );
}
}
コマンドを実行すると
neko Test.n -hoge fuga
以下のような出力がされます
-hoge, fuga
##標準入力
import haxe.io.Input;
class Main {
static function main() {
var input:Input = Sys.stdin();
input.readLine(); //標準入力を一行読み込み
input.readAll(); //標準入力を最後まで読み込み
}
}
##ファイル操作
import haxe.io.Output;
import sys.FileSystem;
import sys.io.File;
class Main {
static function main() {
if ( FileSystem.exists( "tmp" ) ) { //ファイルの有無を調べる
if (! FileSystem.isDirectory( "tmp" ) ) { //ディレクトリかどうかを調べる。
FileSystem.deleteFile( "tmp" ); //ファイルを消去
FileSystem.createDirectory( "tmp" ); //ディレクトリを作成
}
}else{
FileSystem.createDirectory( "tmp" ); //ディレクトリを作成
}
var file:Output = File.write( "tmp/Main.hx" ); //ファイルへの書き込みを開始。
//ファイルへの書き込み
file.writeString(
"class Main{ static function main(){ Sys.println( \"hello\" ); } }"
);
file.close(); //ファイルへの書き込みを終了
//コマンドを実行
Sys.command( "haxe", ["-cp","tmp","-main","Main","-neko","tmp/Hello.n" ] );
}
}