Program uruchamiaący drugi program

Program uruchamiaący drugi program
psc1997
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:16
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 ;)


Troszeczkę zielony! Proszę o wyrozumiałość, w końcu Każdy kiedyś zaczynał ;)
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
psc1997
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:16
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


Troszeczkę zielony! Proszę o wyrozumiałość, w końcu Każdy kiedyś zaczynał ;)
satirev
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 4 lata
0

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

psc1997
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:16
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


Troszeczkę zielony! Proszę o wyrozumiałość, w końcu Każdy kiedyś zaczynał ;)
edytowany 2x, ostatnio: psc1997
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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?


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
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.

psc1997
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:16
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 :)


Troszeczkę zielony! Proszę o wyrozumiałość, w końcu Każdy kiedyś zaczynał ;)
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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ł"...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
psc1997
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:16
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ę ;)


Troszeczkę zielony! Proszę o wyrozumiałość, w końcu Każdy kiedyś zaczynał ;)
0

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

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)