Linux i czytanie plików

0

Mam program, który pisałem w Javie na Windowsie. Na Linuksie nie chce on niestety działać. Nie chce tworzyć nowych plików. Jak temnu zaradzić? Linux SuSE - to mój pierwszy Linux, w ogóle na tym systemie się nie znam.

0

Po pierwsze sprawdź czy ścieżki podajesz z \ czy z / druga opcja jest lepsza bo działa zarówno pod windą jak i pod linuxem.
Po drugie sprawdź czy masz uprawnienia do tworzenia plików tam gdzie chcesz. Polecenie ls -la w konsoli + manual jak czytać wynik.

0

zamiast / lub \ uzyj File.separator i przechwytuj wyjatki (one powiedza co jest nie tak)!

pozdrawiam

0

W programie używam File.separator, a wyjatek mówi, że nie ma takiego katalogu ani pliku :(

0

a mozesz go wkleic?

0

Pisze, że w natywnej metodzie java.io.UnixFileSystem.createFileExclusively(natywna) używanej w java.io.File.createNewFile wystapił. Wiadomośc to: java.io.IOException: Nie ma takiego pliku ani katalogu.

0

A mógłbyś podać nazwę pliku, którego nie możesz utworzyć ?

Uzyskałem dokładnie taki sam komunikat wywołując

f.createNewFile();

kiedy w wywołaniu File f=new File(path);

 zmienna path zawierała <u>nieistniejący katalog</u>
pozdrawiam
0

Ale skoro na Windzie to działa...

0

1.Może na Windzie ten katalog istnieje, a na Linuksie nie ?
2.Zrób coś takiego

  • wejdź do katalogu, który jest katalogiem bieżącym w czasie wykonywania programu Javy
  • utwórz plik ręcznie (touch nazwa_pliku)
  • obejrzyj komunikaty
    pozdrawiam
0

Wyświetliłem nazwy plików i się zdziwiłem. Bo ja utworzyłem je w taki sposób
File file = new File("config" + File.separator + "nazwa.dat")

Na Linuksie zamiast scieżki
folderprogramu/config/nazwa.dat
jest
/home/konrad/config/nazwa.dat

Dlaczego tak się dzieje na Linuksie?

0

/home/konrad
to zapewne twój katalog domowy (jeśli twój login to konrad), jeśli tam umieściłeś program to folderprogranu=="/home/konrad/"
(na Windzie też ci się coś dopisało z przodu, zapewne cos w rodzaju C:\bleble)
pozdrawiam

0

No przecież jak tworzę plik new File("nazwapliku") to ten plik powinien byc w tym samym katalogu co program. Jak jak tworzę new File("katalog/nazwapliku") to w katalogu podrzednym. To dlaczego program szuka tego w katalogu domowym? Na Windowsie wszystko świetnie działa i plik jest szukany tam, gdzie trzeba.

0

No i tam właśnie jest,
/home/konrad/... to pełna ścieżka odpowiednik C:\jakis_tam_katalog

0

Tyle, że ścieżka z Linuksa pomija mi kilka folderów po drodze. Wycina je po prostu :(

0

dziwne - u mnie dziala :P

pozdrawiam

0

U mnie niestety tak jest. Windows gdy jako nazwę pliku podam ciąg znaków, dodaje do niego ścieżkę do aktualnego katalogu, a linux do katalogu domowego użytkownika.

0

Zrób tak:
Jeśli plik jest w aktualnym katalogu:
./plik

Jeśli plik jest w katalogu domowym aktualnie zalogowanego użytkownika:
~/plik

Jeśli plik jest w katalogu domowym użytkownika konrad
~konrad/plik

0

./plik nie działa na Linuksie, a na Windowsie tak...

0

Coś mi się wydaje, że coś jest nie tak z moim Linuksem :(
Czy możecie ściagnąc to: http://chomikuj.pl/dharma4815162342/KeyConfigTest.rar - to jest tutek z jednej ksiażki. Sprawdziłem i okzałao się, że poza moimi programami innych też nie działają. Czyli coś musi być źle z moim SuSE. Dla pewności prosze, aby ktoś z was to pobrał. Wymaga JRE6 Update 3. Wykonywalny plik jest w olderze dist. Czy u Was to działa na Linuksie?

0

Może ktoś pobrać ten plik?

1 użytkowników online, w tym zalogowanych: 0, gości: 1