Haxe/Nekoでコマンドラインツール制作入門
Haxeでは制作できるのは、JavaScriptや、Flash、スマホアプリだけではありません。Neko出力を使うことで簡単にコマンドラインツールを制作することが出来ます。
FlashDevelopにはHaxe/Nekoのプロジェクトがあるので、これを選択することで簡単にHaxe/Nekoのツールを制作することができます
こんにちは!!
srcフォルダに以下のようなHaxeファイルを書きます。
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を出力して改行
}
}
パラメータを取得
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" ] );
}
}
Author And Source
この問題について(Haxe/Nekoでコマンドラインツール制作入門), 我々は、より多くの情報をここで見つけました https://qiita.com/shohei909/items/5a4450ab8de3e455266b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .