Program uruchamiaący drugi program

0

Cześć! :)
Mam pytanie i wyjaśnię to na przykładnie. Jak zrobić,albo jakich bibliotek czy jakiego kodu użyć, aby gdy uruchomię plik o przykładowej nazwie plik1.class, on uruchomi(po skończonej pracy) plik2.class?
Albo może inny przykład, tak w punktach co i jak ja to widzę:
1.Uruchamiam plik plik1.class
2.on, załóżmy wykonuje obliczenie 1+2(oczywiście to wiem jak zrobić, tego nie musicie tłumaczyć xP)
3.Gdy już program to obliczy, jak wiadomo kończy on swoją pracę, i właśnie w tym momencie uruchamia się plik2.class
Tzn. że na końcu plik1.class muszą znaleźć się jakieś linijki z kodem, który uruchomi plik2.class... i to jest właśnie moje pytanie... Jaki to kod? :)
Pozdrawiam Patryk ;)

0

A czy te pliki to muszą być osobne programy z osobnym main? Jeśli tak to użyj
http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html

0

emm... o ile dobrze rozumiem robię tak:
public class Runtime{
public static void main(String[] args){
[...]
}
}
i co mam wstawić w miejsce "[...]" aby plik1.class uruchomił znajdujący się w tym samym folderze plik2? :)
to ma być coś takiego?: http://www.java2s.com/Code/JavaAPI/java.lang/RuntimegetRuntime.htm

0

To brzmi jak komunikacja między procesami. Mógłbyś np. zdefiniować potok.

0

ehh... to może ja wyjaśnię po co mi to w ogóle jest i jaki program chcę zrobić...
Po pierwsze prawdopodobnie będzie to program na platformę Linux, choć jeszcze nie zdecydowałem czy openSUSE, czy może coś bazujące na Debianie, choć chyba zdecyduję się jednak na Linux Mint(bazujący na Debianie).
Bedze on liczył przez jaki czas był włączony jakiś program, tutaj jako przykład dam program Amarok(odtwarzacz muzyki)
I teraz jak ja widzę jego strukturę:
będą 3 pliki: np. file1.class, file2.class i file3.class
Program uruchamiam plikiem file1. On pobiera z pliku Login.txt jaki jest login, i uruchamia file2.
File 2 natomiast, no i właśnie tu jest problem, ponieważ nie zdecydowałem jeszcze jak to zrobię, ale ogólne założenie jest takie, aby file 2 sprawdzał czy program Amarok jest włączony.(prawdopodobnie posłużę się tu jakąś pętlą). Gdy wykryje, że Amarok jest włączony uruchamia file3.class. File3 pobiera z z systemu aktualną godzinę(GregorianCalendar) i zapisuje ją w zmiennej A. Oprócz tego file3 na bieżąco sprawdza(albo co 1 min zależy jak będzie to obciążać komputer), czy czasem nie wyłączyłem programu Amarok. Gdy wykryje że go wyłączyłem zapisuje aktualną godzinę do zmiennej B. I oblicza B-A. W ten sposób wiem, przez jaki czas Amarok był włączony. Gdy już to obliczy zapisuje ten czas do pliku czas.txt i uruchamia file2. No i file 2 znów co chwile sprawdza czy jest włączony Amarok. I w ten sposób robi się takie koło, że na zmianę raz uruchamia się file2, a raz file3 ;)

Po prostu będzie to program liczący statystyki le czasu uruchomiony był dany program(na początku tylko Amarok, tak dla testów czy to w ogóle działa, później stopniowo będę dodawał inne programy).

@Edit: Trochę za dużo plików *class wypisałem :P

0

Ale ja nie rozumiem czemu to maja być osobne procesy. Przecież to wszystko można zrobić w jednej aplikacji! Ty w ogóle rozumiesz jak się programuje obiektowo?

0

Kolega jest mastahem konsoli unixowej i lubi pipowac wszystko co sie da. Kazda funkcjonalnosc zaimplementowana za pomoca prostego programu pobierajacego wejscie i dajacego wyjscie. Programowanie funkcyjne do potegi.

0

@Shalom, nie do końca... dopiero zaczynam naukę "programowania"(o ile można tak nazwać robienie zmiennych, odczyt z plików, etc...). Uczę się z tego kursu: 'http://javastart.pl/podstawy-jezyka/' i jeszcze nie doszedłem do Programowanie Obiektowego. Aktualnie jestem na końcu podstaw, przy pętlach :)
A że ostatnio wpadłem na pomysł, aby napisać w/w program, działający na Linuxie, i cały czas chodzi mi to pogłowie, to postanowiłem go wykonać. Dlatego w 3 plikach, ponieważ tak będzie mi się łatwiej połapać, bo każdy plik będzie odpowiadać za coś innego, i np. gdy będę chciał rozbudować logowanie do programu, to wystarczy że zedytuję jeden plik, i mam mam pewność, że teoretycznie, np. kod odpowiadający za logowanie nie będzie się "gryzł" z innym kawałkiem kodu odpowiadającym za coś innego.
Mam nadzieję, że nie skrytykujecie mnie za to, że dopiero zaczynam przygodę z Javą, i w ogóle z programowaniem, a porywam się na tak duży projekt, ale chęć stworzenia tego programu jest dla mnie na prawdę zarąbiście dużą motywacją do dalszej nauki, nawet gdy coś mi nie wychodzi tak jak powinno :)

2

Ale to co piszesz jest BEZ SENSU. NAJPIERW uczymy się programować, a potem dopiero piszemy takie rzeczy.
Bo ta sytuacja jest kuriozalna, trochę tak jakbyś napisał:
"Cześć, wpadłem na pomysł żeby policzyć ile to będzie jak dodam do siebie milion trójek. Nie umiem jeszcze mnożyć bo jesteś zbyt leniwy żeby doczytać kolejny rozdział książki do matematyki, ale umiem dodawać i postanowiłem że będę sobie to dodawał"...

0

ehhh...
No nic dziękuje za odpowiedzi i w ogóle za pomoc(nie to nie jest sarkazm).
Zrozumiałem, że w sumie nie wiem prawie nic o programowaniu, i w ogóle że mało jeszcze wiem. Ale wiem jedno: będę się uczył dalej, i dalej próbował to wszystko zrozumieć, ale pomysłu na program jaki opisałem nie porzucę, i kiedy będe umiał już dostatecznie wiele, zrealizuje go!
3majcie się ;)

0

Jak będziesz już umiał dostatecznie dużo to stwierdzisz że ten projekt jest za łatwy i zrezygnujesz z niego :)

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