run by java side