2012-09-21 11 views
5

Mam plik Main.java i chcę, aby uruchomić program przechodzi ona TEST.TXTWykonywanie polecenia „makro”, aby uruchomić program

wiem w wierszu poleceń można napisać javac Main.java

Po kompilacji mogę napisać java Main test.txt i będzie to osiągnąć uruchamiając plik i przechodząc test.txt

Gdybym chciał zamiast móc wystarczy napisać main test.txt i mają powodować, że mój plik Main.class aby uruchomić to możliwe i jeśli tak, to w jaki sposób?

+0

Nie zrobiłeś nic złego. :) Fajne pytanie. Prawdopodobnie ma więcej wspólnego z rzeczami specyficznymi dla systemu operacyjnego niż Java, ponieważ prawdopodobnie będziesz musiał wykonać pewne modyfikacje powłoki lub coś podobnego. – asteri

Odpowiedz

1

(Edit: Na podstawie Twojego komentarza, pozwól mi rozwijać, aby dodać kilka innych sytuacji)

Jeśli Twoim celem jest, aby ktoś inny uruchomił Twój program, który nie ma zainstalowanej Java, i nie chcesz, aby instalowały środowisko uruchomieniowe Java przed uruchomieniem aplikacji, potrzebny jest program który konwertuje pliki .class lub .jar do natywnego pliku wykonywalnego dla platformy, z której korzystasz. Jak to zrobić zostało omówione w innych pytaniach, np .: Compiling a java program into an executable. Zasadniczo używasz programu takiego jak JCG (kompilator GNU dla Javy) lub Excelsior JET (produkt komercyjny) w celu rozszerzenia kodu bajtowego na pełny natywny kod z wbudowanym mini-JRE.

Jeśli Twoim celem jest zapisanie pisania istnieje wiele strategii. Inni sugerują polecenia aliasu, które działają dobrze na Linuksie.

Nieco bardziej przenośną opcją, którą można wysłać wraz z programem, jest skrypt powłoki. Oczywiście skrypty powłoki działają tylko na Linuksie lub innych systemach operacyjnych z zainstalowanymi interpreterami skryptów powłoki.

Oto przykładowy skrypt powłoki. Wklejasz to do edytora tekstowego i zapisujesz jako główne bez rozszerzenia. $ 1 przekazuje argument parametru fyi.

#!/bin/sh 
java Main $1 

zakładając nazwać swój skrypt po prostu „main” bez rozszerzenia, można nazwać main test.txt wykonać swój program teraz.

Jeśli jesteś w systemie Windows, możesz utworzyć skrót do systemu Windows i wskazać skrót do "Główny test.text java", używając w razie potrzeby pełnych ścieżek (jeśli ścieżki nie zostały jeszcze ustawione). Oczywiście nie zmienia to parametru za każdym razem, gdy go uruchamiasz, musisz edytować skrót.

+0

Czy mógłbyś rozwinąć? Powinienem wyjaśnić, że muszę mieć możliwość uruchamiania innych programów z głównym (wstawić plik, który mają ochotę wypróbować tutaj). – brucebomber

+0

Nie jestem savy z kodem powłoki, czy w twoim proponowanym rozwiązaniu jest coś trudnego? – brucebomber

0

Zależy od systemu operacyjnego. Na przykład w Linuksie z powłoką Bash można skonfigurować alias, aby rozwinąć main do java -cp myjar.jar main.

Linux może być również skonfigurowany do "rozumienia" muchy klasy Java w formacie binarnym bezpośrednio patrz here (dokumentacja jądra Linuksa).

Jeśli jesteś na oknach, będziesz musiał czekać na odpowiedź od kogoś z większą wiedzą o tym niż I.

powodzenia!

+0

patrz też [to], (http://stackoverflow.com/questions/1667830/running-a-jar-file-without-directly-calling-java), który wskazuje to samo rozwiązanie. – Faelkle

+1

Można utworzyć skrót do 'java.exe' przekazując parametry wiersza polecenia pod oknami. Musisz tylko upewnić się, że kontekst uruchamiania wskazuje na właściwy katalog – MadProgrammer

+0

Tak. W przypadku linux/cygwin: OP powinien również sprawdzić skrypty powłoki Groovy; mogą uruchamiać kod java (+ Groovy) w sposób podobny do zwykłych skryptów powłoki. Ref: [Tworzenie skryptów uniksowych za pomocą Groovy] (http://groovy.codehaus.org/Running). – Faelkle

1

dodać alias np. pod edycji MAC .bash_profile z poniższej linii

alias main='java main' 

nie zapomnij, aby otworzyć nową konsolę, aby zobaczyć swój pseudonim pracy

Powiązane problemy