2015-08-26 2 views
0

У меня есть папка «Бизнес» (e: \ Business) в этой папке. Я скомпилировал файл. Я хочу использовать эту папку в своей основной программе. Моя основная программа находится в главной папке (e: \ ProjectFile \ Main).Как получить путь к папке динамически?

Я хочу, чтобы получить путь бизнес папки динамически .I использовать даного но не получилось:

String loadedClassPath = System.getProperty("user.dir")+System.getProperty("file.separator")+"Business"; 

      File operatorFile = new File(loadedClassPath); 
      URL operatorFilePath = operatorFile.toURL();   
      URL[] operatorFilePaths = new URL[]{operatorFilePath}; 
      ClassLoader operatorsClassLoader = new URLClassLoader(operatorFilePaths); 
      Class[] operatorClass = new Class[]{ operatorsClassLoader.loadClass("Plus"), operatorsClassLoader.loadClass("Minus"),operatorsClassLoader.loadClass("Multiply") , operatorsClassLoader.loadClass("Divide") }; 

Я думаю, что эта часть не является правильным:

String loadedClassPath = System.getProperty("user.dir")+System.getProperty("file.separator")+"Business"; 

Может кто-нибудь мне помочь ?

+0

По существу, вы не можете, если вы не намерены использовать абсолютный путь напрямую, очень мало, чтобы связать папку «business» с вашей папкой приложения. Лучшим решением будет размещение бизнес-папки в хорошо известном месте, например '{user.home} \ AppData \ Local \ {Your AppName}' в Windows o '{user.home}/Library/ApplicationSupport/{Your AppName} 'на Mac – MadProgrammer

+0

Другим вариантом может быть определение переменной окружения, указывающей на местоположение папки, и использование' System.getenv (...) 'для извлечения ее во время выполнения или передача ее в качестве аргумента для вашего приложения. – MadProgrammer

+0

Учитель сказал, что основная программа и бизнес должен быть в одном драйвере. Если я сменил диск, моя программа должна работать – soha

ответ

2

С "E: \ Business" является полностью связаны с

  • местоположение вашего Java кода
  • ваш домашний каталог (user.dir)
  • любой другой хорошо знают Windows, или Каталог Java

Вы должны сообщить программе, где/что это такое.

Некоторые опции:

  1. Hard-код в программе Java. Не хорошо
  2. Пропустить как аргумент main.
  3. Магазин в файле недвижимости, который является, расположенный в одном из упомянутых выше каталогов.

Есть, вероятно, больше вариантов, но вариант 3 является очень распространенным явлением, вариант 2 является менее распространенным, но может быть лучшим выбором в зависимости от обстоятельств, и вариант 1 является высоко обескуражен.


Примечание: При создании имени пути/файла, используйте new File(parent, child), или еще лучше, использовать новые Paths.get(first, more, ...).
«Новый» относится к Java 7, означающий с 28 июля 2011 года, так что не совсем новый.

Смежные вопросы