2015-07-09 3 views
0

Интересно, можно ли запустить программу, не упаковывая ее в банку.Java run without jar

Например, мы имеем следующее:

-AppRoot 
    Main.class 
    -Misc 
     Math.class 
     OtherTools.class 
    -YetAnotherFolder 
     UsefulFunctions.class 

возможно ли это? Основной метод должен быть выполнен из командной строки или аналогичного.

+0

Возможно. Просто скомпилируйте все, используя 'javac', затем запустите основной класс, используя' java'. –

+0

@RedRoboHood Но как я могу загрузить другие классы? – KaareZ

+0

Они должны загружаться автоматически, если у вашего кода нет никаких проблем, и все они скомпилированы должным образом. –

ответ

2

Вы можете запустить этот путь из каталога AppRoot

javac -cp Misc/*:YetAnotherFolder/* Main.java //To compile 

java -cp Misc/*:YetAnotherFolder/* Main // To run 

Ниже некоторая документация

-classpath classpath 
    -cp classpath 
      Specifies a list of directories, JAR archives, and ZIP archives to search for class files. Class 
      path entries are separated by colons (:). Specifying -classpath or -cp overrides any setting of the 
      CLASSPATH environment variable. 

      If -classpath and -cp are not used and CLASSPATH is not set, the user class path consists of the cur- 
      rent directory (.). 
+0

Если вы находитесь в папке, уже находящейся в терминале, вы можете просто сделать: 'javac .java', а затем запустить его, вы можете сделать' java ' – Colin

0

Добавить все (суб) каталоги, содержащие файлы классов, в путь к классам и использовать класс с методом main в качестве аргумента исполняемого файла java.

Структура каталогов - это структура вашего пакета.

java -cp ./:./AppRoot:./AppRoot/Misc:./AppRoot/YetAnotherFolder AppRoot.Main

Это должно работать, если все зависимости будут разрешены и на пути к классам.