備後国御調郡向島西村（現在の広島県尾道市）の医師・林金十郎の四男として生れる。12歳で広島に出て漢学、医学を学ぶ。1860年、長崎で医学を学び、英国軍艦に乗組んで二年間軍学を学んだ。1865年何礼之が開設した私塾で前島密らとともに学ぶ。 薩摩藩の講師として招かれた前島に誘われ薩摩藩へ移る。1866年、小松清廉、西郷隆盛に請われ薩摩藩の海軍養成に携わる。1867年薩摩藩に軍艦｢春日丸｣を購入するよう島津久光に進言。同年「春日丸」に乗組んで三条実美らを筑前から迎え、1868年「春日丸」艦長となる。同年、幕府艦「開陽」と阿波沖に戦い、ついで奥羽北越に転戦した。のち兵庫軍務官出仕、「和泉丸」艦長、兵部権少丞（大坂在勤）、兵部少丞を経て、1871年、陸軍中佐。大坂鎮台に勤務し1872年、兵部省が陸軍、海軍に分割されると海軍に身を投じ海軍中佐任官。海軍の創設に携わり徴兵令の必要を主張した。以後、海軍省軍務局勤務、兼水平本部長、台湾蕃地事務局勤務、海軍省副官兼軍務局長、兼東海鎮守府副官、神戸臨時海事事務局長などを歴任した。この間、佐賀の乱・台湾の役・西南戦争に出征、1880年2月、海軍少将に進級。