私はcmdのjavaプログラムをjava Main
のように実行しています。しかし、その前に、cd ...
を使用してルートディレクトリに移動しなければなりません。これは、メインクラスがルートディレクトリにあるプロパティファイルから値を読み込んでいるためです。ルートディレクトリを設定する方法やオプションがあるので、cd
コマンドでこのディレクトリにアクセスする必要はありませんか?cmdのjavaコマンドのデフォルトディレクトリの設定方法
答えて
ディレクトリにパスをパラメータとして渡し、String[] args
からmain
メソッドに入ることができます。あなたはファイルへの絶対パスを渡しますが、それはあなたがあなたのJavaプロセスを開始しているディレクトリからは関係ありません。
これはどのように行うことができるかを示すoracle's tutorialです。コマンドプロンプトを通じてディレクトリにナビゲート
cmdで 'java'コマンドを呼び出すときに、どのようにパラメータを渡すことができますか? –
答えに例をあげてリンクを追加しました。 –
はwhile
ループといくつかの単純な文字列処理を使用して非常に簡単です:
System.out.println("Please navigate to the desired directory then type 'done'...");
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
StringBuilder path = new StringBuilder(); //Storage for dir path
path.append(System.getenv("SystemDrive"));
while(scanner.hasNextLine()) {
String command = scanner.nextLine(); //Get input
if(command.equalsIgnoreCase("done")) {
break;
}else if(command.startsWith("cd")){
String arg = command.replaceFirst("cd ", ""); //Get next dir
if(!arg.startsWith(System.getenv("SystemDrive"))) { //Make sure they are not using a direct path
if(!new File(path.toString() + "/" + arg).exists()) { //Make sure the dir exists
arg = arg.equalsIgnoreCase("cd") ? "" : arg;
System.out.println("Directory '" + arg + "' cannot be found in path " + path.toString());
}else {
if(arg.equals("..."))
path = new StringBuilder(path.substring(0, path.lastIndexOf("/"))); //StringBuilder#substring does not alter the actual builder
else
path.append("/" + arg);
System.out.println("\t" + path.toString()); //Add the dir to the path
}
}else { //If they are using a direct path, delete the currently stored path
path = new StringBuilder();
path.append(arg);
System.out.println("\t" + path.toString());
}
}else if(command.equalsIgnoreCase("dir")) {
System.out.println(Arrays.toString(new File(path.toString() + "/").list()));
//List the dirs in the current path
}else {
System.out.println("\t" + command + " is not recognized as an internal command.");
}
}
//Get your file and do whatever
File theFile = new File(path.toString() + "/myFile.properties");
あなたは、Javaの-cp
(クラスパス)のコマンドライン引数を使用することができます。その後
ディレクトリ構造はあなただけ<application folder>
に移動し、アプリケーションを起動するためにjava -cp bin Main
を使用することができ
<application folder>
|
|--config.props (properties file)
|
\--bin
|
|--Main.class
|
|... other classes
ある場合。現在のフォルダ内のファイルとしてconfig.props
を参照することもできます(現在のフォルダにあるため)。
これは常に入力したくないものであるため、config.props
の横にあるWindows .batファイルまたは* nix .shスクリプトでラップできます。
- 1. Windowsのcmd端末でcdコマンドのデフォルトディレクトリを設定するにはどうすればよいですか?
- 2. Windows WinRTでQFileDialogのデフォルトディレクトリを設定する方法
- 3. Bash-コマンドのデフォルトディレクトリを変更する方法
- 4. cmd/bashコマンドを使用してアプリケーションのログレベルを設定する方法は?
- 5. JAVA SWINGからCMDにコマンドを与える方法(JAVA Swingからコマンドをcmdに印刷する)
- 6. Cmdバッチファイルの設定
- 7. Javaランタイムcmd日時コマンド
- 8. Sencha CMD:デフォルトビルドターゲットを設定する方法
- 9. cmdのコマンドをバッチスクリプトのコマンドに変換する方法
- 10. psql cmdコマンドのパスワードを指定する(Javaアプリケーション経由)
- 11. Javaの設定方法
- 12. CMDコマンドからバッチファイル変数の値を設定する
- 13. wince7のcmdコマンド
- 14. コマンドを使用する方法:コマンド<cmdファイル内のテキストファイル?
- 15. Node.JSのデフォルトディレクトリを変更する方法
- 16. LinuxのコマンドはCMD
- 17. このJavaクローラーの設定方法
- 18. トーチのデフォルトディレクトリ
- 19. clのCMDコンパイルWindowsの設定
- 20. 別のcmdでコマンドを実行する方法
- 21. ドッキングウィンドウの実行行にCMDコマンドを無効にする方法
- 22. Java cmdのアクティブディレクトリ
- 23. dockerfile cmdが、複数のコマンド
- 24. CMDは:STDIN、別のコマンド
- 25. Pythonスクリプト内のCmdコマンド?
- 26. Windows CMD TYPEコマンド
- 27. フォーマットCMDコマンド
- 28. Travis cmdコマンド
- 29. CMD dirコマンド
- 30. Djangoデータベースの初期接続コマンドの設定方法は?
[システムコマンド - Java]の可能な複製(https://stackoverflow.com/questions/7294710/system-commands-java) –
@ShivendraAgarwal私はこの質問がこのようなものではないと思います。この人はシステムコマンドを実行しようとしていません - 実際に彼らは反対をしようとしています。 "それでは、私はcdコマンドでこのディレクトリにアクセスする必要はありません。" – csmckelvey
"デフォルトディレクトリ"はありません。 *現在の作業ディレクトリ*があり、cwd'または 'cd'で設定します。 – EJP