Jak mogę odebrać plik jako argument wiersza poleceń?Używanie argumentu wiersza polecenia do przekazywania plików do programu
Odpowiedz
Tylko ścieżka pliku jest przekazywana, wewnątrz program użyć klasy Java plików obsłużyć to
Trwa to pierwszy parametr jako ścieżka pliku:
import java.io.File;
public class SomeProgram {
public static void main(String[] args) {
if(args.length > 0) {
File file = new File(args[0]);
// Work with your 'file' object here
}
}
}
w Java, main
metoda otrzymuje tablicę String jako argument, jak zapewne zauważyłeś. możesz podać inną nazwę parametrowi args
, ale jest to najczęściej używana.
tablica args
zawiera wartości tego, co użytkownik wpisał podczas uruchamiania programu, po nazwie klasy. Na przykład, aby uruchomić klasę o nazwie Foo, użytkownik musi wpisać:
[user @ stacjonarny ~] $ java Foo
wszystko użytkownik wpisze po nazwa klasy jest uważany za parametr . na przykład:
[user @ stacjonarny ~] $ java Foo bar baz
teraz program otrzymał dwa parametry: bar i baz. te parametry są przechowywane w tablicy args
. jako zwykła tablica Javy, pierwszy parametr można uzyskać, uzyskując dostęp do args[0]
, drugi parametr można uzyskać, uzyskując dostęp do args[1]
i tak dalej. jeśli spróbujesz uzyskać dostęp do nieprawidłowej pozycji (gdy użytkownik nie wpisał tego, czego oczekiwałeś), ta instrukcja wygeneruje wartość ArrayIndexOutOfBoundsException
, podobnie jak w przypadku każdej tablicy. możesz sprawdzić, ile parametrów zostało wpisanych za pomocą args.length
.
wróć do pytania. użytkownik może poinformować nazwę pliku jako parametr wiersza poleceń i można odczytać tę wartość za pomocą argumentu metody main
, zwykle o nazwie args
. musisz sprawdzić, czy naprawdę wpisał coś jako argument (sprawdzając długość tablicy), a jeśli jest w porządku, masz dostęp do args[0]
, aby przeczytać, co wpisał. następnie możesz utworzyć obiekt oparty na tym łańcuchu i zrobić to, co chcesz z nim zrobić. zawsze sprawdź, czy użytkownik wpisał liczbę oczekiwanych parametrów, inaczej uzyskasz wyjątek podczas dostępu do tablicy.
tutaj jest pełna przykładów, jak używać parametrów wiersza polecenia:
public class Foo {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("no arguments were given.");
}
else {
for (String a : args) {
System.out.println(a);
}
}
}
}
ta klasa będzie analizować parametry poinformowany przez użytkownika. jeśli nic nie napisze, klasa wypisze komunikat "nie podano żadnych argumentów". jeśli przekaże dowolną liczbę parametrów, parametry te zostaną wyświetlone na ekranie. tak, prowadzenie tej klasy z dwoma przykładami Mam podanymi na tej odpowiedzi, wyjście będzie:
[user @ stacjonarny ~] Foo $ java
żadne argumenty zostały podane.
[user @ stacjonarny ~] $ java Foo bar baz
bar
baz
Moim zdaniem, najlepszych praktyk, aby spróbować wykryć args == 0 i zwraca listę poleceń pomocy na temat korzystania program, jeśli nie podano żadnych argumentów.
Witamy w StackOverflow! Myślę, że plakat chce wiedzieć, jak go rozwiązać, jeśli w rzeczywistości> 0>. –
Widziałem kilka innych rozwiązań, ale myślę, że nie zadziałają, jeśli ty. Na przykład podaj C:\Program Files\file.dat
jako argument wiersza polecenia. Wtedy to nie zadziała, ponieważ bierzesz tylko args[0]
podczas tworzenia nowego pliku.
Należy więc rzeczywiście coś zrobić jak poniżej, dołącz wszystkie części danego argumentu, a następnie dokonać plik z nim:
import java.io.File;
public class SomeProgram {
public static void main(String[] args) {
String current = "";
File lastFile = null;
for(String str : args){
File newFile = new File((current + " " + str).trim());
if(newFile.exists()){
lastFile = newFile;
}
current += " " + str;
}
File yourFile = lastFile;
}
}
Ja obecnie pracuje nad podobnym problemem i wydaje się to zrobić sztuczka.
To jest dobre rozwiązanie. Argumenty przekazywane do programu to ścieżka do pliku, która zawiera spacje. Jednak nie jest to dobre podejście, jeśli do programu jest przekazywana więcej niż ścieżka do pliku. Właściwe podejście polega na otaczaniu ścieżki pliku cudzysłowami przed wysłaniem go do programu. Program powinien następnie sprawdzić, czy każdy argument jest prawidłowego typu, a jeśli nie, wyświetlić prawidłowy przypadek użycia i wyjść. –
- 1. Jak uzyskać pełną ścieżkę do argumentu wiersza polecenia filename?
- 2. Przekazywanie argumentu do CMAKE za pomocą wiersza polecenia
- 3. zapisywanie wiersza polecenia do pliku
- 4. Używanie obiektu WScript.shell activeX do uruchamiania wiersza polecenia
- 5. Argumenty wiersza polecenia programu Flash Player do "Utwórz projektor"
- 6. Używanie programu dub do tworzenia dokumentacji
- 7. Przekierowywanie wyjścia do argumentu wiersza polecenia innego polecenia w systemie Windows
- 8. Przekazywanie argumentu unicode z wiersza komend do kodu Java
- 9. używanie R do kopiowania plików
- 10. Przekazywanie "*()" jako argumentu do programu w bash
- 11. Używanie programu IComparer do sortowania
- 12. Używanie NSURLSession z programu wiersza poleceń Swift
- 13. Używanie programu odwzorowującego i zestawu plików do kopiowania plików do innego podkatalogu?
- 14. Argumenty wiersza polecenia do testu przyrządu Android przy użyciu gradle
- 15. Jak uzyskać dostęp do argumentów wiersza polecenia przekazanych do programu Go?
- 16. Argumenty wiersza polecenia w bashie do Rscript
- 17. Dodawanie argumenty wiersza polecenia do aplikacji VB.Net
- 18. Jak dostać się do wiersza polecenia uboot
- 19. Przekaż parametr do wiersza polecenia skryptu MySQL
- 20. Używanie PowerShell do dodawania rozszerzeń do plików
- 21. Używanie libcurl do przesyłania plików do DropBox
- 22. Ostrzenie z wiersza polecenia
- 23. Uruchamianie plików Java bez brzydkiego wiersza polecenia w tle
- 24. Przekazywanie argumentu wiersza poleceń do programu w języku Python za pomocą IDLE?
- 25. Argumenty wiersza poleceń Java. Używanie * jako argumentu dla mnożenia
- 26. Narzędzie wiersza polecenia do podświetlenia składni C# do HTML?
- 27. Pełne indeksowanie wiersza polecenia?
- 28. Jak zainstalować rozszerzenia programu Visual Studio Gallery z wiersza polecenia
- 29. Dodaj ikonę do istniejącego pliku EXE z wiersza polecenia
- 30. C funkcja do wprowadzenia ciągu znaków dla argumentu polecenia powłoki?
czy możesz mi powiedzieć coś więcej na temat "arg [0]" Nie mogę znaleźć użytecznego źródła do przeczytania tematu wiersza poleceń: ((((((( – Johanna
Przeczytaj sekcję "główna metoda" na http://java.sun.com/docs/books/tutorial/getStarted/application/index.html .Dokładnie opisuje czym jest "argumenty" Samouczek jest dobrym źródłem do znalezienia odpowiedzi na wiele pytania, które miałeś –
@Johanna: Args [0] uzyskuje dostęp do argumentów tablic łańcuchowych w pozycji 0 (pierwszy element tablicy), argumenty są przekazywane jako parametr do metody głównej (String [] args), oraz jest tablicą ciągów zawierającą argumenty wiersza poleceń przekazane do programu: – Sean