Skip to content

Java/他Java環境スクリプト用シェルコマンド実行StreamAPIライブラリ(マルチスレッド対応)

Notifications You must be signed in to change notification settings

stofu1234/ShellTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ShellTools

Unix Pipelining,Powershell Pipelining,C# LINQ,Java Stream APIって似た概念だな、相互運用できたらいいなと考えによりできた PipeLiningとJava StreamAPIを連携させるライブラリ(Java→pipelining)です

Overview

Java/他Java環境スクリプト用シェルコマンド実行StreamAPIライブラリ(マルチスレッド対応)です

JavaからShellで実行したコマンドの実行結果をStreamオブジェクトとして受け取るライブラリです

主にパイプライニングでデータ加工を行うようなコマンドの実行結果をJavaでシームレスに受け取ったり、
そのコマンドをJavaのStreamAPIで置き換えたりする場合に使います。

Description

Requirement

sbtがインストールされていること

Usage

//Scalaインタプリタで実行した場合
//事前準備
scala -cp .\target\scala-2.11\ShellTools-assembly-1.0.jar

import java.util.function.Consumer
implicit def funcToConsumer( func : String => Unit ) = new Consumer[String](){ def accept(s: String) = func(s) }
val funcPrintln: Consumer[String] = (st:String) => println(st)

//ProcessStream
import jp.co.stofu.ShellTools.ProcessStream
ProcessStream.create("cmd","/c","dir","c:\").forEach(funcPrintln)

//ShellStream
import jp.co.stofu.ShellTools.ShellStream
ShellStream.create("dir c:\").forEach(funcPrintln)

//PowershellStream
import jp.co.stofu.ShellTools.PowerShellStream
PowerShellStream.create("Get-EventLog -LogName security -Newest 10").forEach(funcPrintln)

Install

git clone https://github.com/stofu1234/ShellTools.git
cd ShellTools

mkdir out
sbt compile test:compile assembly

Licence

MIT

Author

stofu1234

About

Java/他Java環境スクリプト用シェルコマンド実行StreamAPIライブラリ(マルチスレッド対応)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published