怎么用java實現“是否繼續(n\y?)--按y則繼續“的功能?(不按回車)


各位大大,小弟剛進公司,現在做項目遇到了這樣的問題:就是要用java做一個jar包,然后通過bat文件調用,要求達到調用的時候先出現一個問句”是否繼續(n\y?)“ (當然是cmd中調用bat文件,bat里面調jar包)然后用戶點y,則繼續執行下面的步驟,按n則終了,按其他鍵(包括空格鍵,回車鍵)則什么都不干,處於等待狀態。
暈啊,我只知道可以 通過 BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
的方法來獲得 控制台輸入,不過是要按回車才能得到輸入。在網上也搜了很長時間,一直找不到好的解決方法,有人知道怎么做嗎?務必告訴小弟,項目急用!
歡迎回帖幫頂哈                   

5 个解决方案

#1


既然是bat調用jar,可以把這個用bat寫出來么?象下面一樣 

@echo off
@choice /c yn /m "是否要執行這個java文件?"
@if errorlevel 2 goto no
@if errorlevel 1 goto yes


:yes
echo "執行java文件..."
goto end

:no
echo "拒絕執行,即將退出..."
goto end

:end

#2


頂一下。如果有人知道怎么在java中捕獲鍵盤,或做到上面的要求,也說一下。學習一下

#3


試了一下swt可以做到.調用win32的鍵盤鈎子也能做到吧.

import java.io.IOException;

import org.sf.feeling.swt.win32.extension.hook.Hook;
import org.sf.feeling.swt.win32.extension.hook.data.HookData;
import org.sf.feeling.swt.win32.extension.hook.data.KeyboardHookData;
import org.sf.feeling.swt.win32.extension.hook.listener.HookEventListener;

public class Test {
public static void main(String[] args) throws IOException {
System.out.println("將要運行該java文件,Y/N?");
Hook.KEYBOARD.addListener(new HookEventListener() {

@Override
public void acceptHookData(HookData arg0) {
KeyboardHookData KHD = ((KeyboardHookData) arg0);
if(KHD.getTransitionState()){
if(KHD.getWParam() == 89) {
System.out.println("選擇了是,執行method");
}else if(KHD.getWParam() == 78) {
System.out.println("選擇了否,即將退出!");
}else if (KHD.getScanCode() == 1) {
System.out.println("ESC退出!");
System.exit(0);
}else{
System.out.println("請選擇Y/N!");
}
}
}
});
Hook.KEYBOARD.install();

}
}

#4


輸入了n或者y,用戶為什么就不再按下個回車呢?
遇到這種沒多大意思的問題的時候,讓用戶按個回車吧。
老板說不行,但你可以給他個理由,如用戶想繼續,但是錯誤的按了個n,這時候就結束了,多不好。
如果是在按下回車后才執行,這樣,用戶輸入錯了還可以修改。

#5


謝謝各位的幫助,現在才回復帖子,很不好意思

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com