Я могу использовать путь к классу для переопределения файла в банке, которая выполняется?

Я хотел бы использовать различного редактора, чем XCode для кодирования, но я чувствую, что никакой другой редактор не интегрируется достаточно плотно с ним, чтобы действительно стоить.
Однако, учитывая некоторое время, TextMate мог бы в конечном счете добраться до той точки. В данный момент, хотя, это, прежде всего, испытывает недостаток в функциях отладки и рефакторинге.

Для всего, чему не нужен XCode, я люблю TextMate. Если бы у меня был другой пользователь Mac в моей рабочей группе, то я, вероятно, рассмотрел бы SubEthaEdit для его функций сотрудничества. Если бы это - Emacs, Вы хотите, я рекомендовал бы Aquamacs (более подобный Mac) или Углерод Emacs (больше GNU-Emacs-like)

18
задан Guss 10 November 2009 в 14:53
поделиться

4 ответа

Why not just invoke the application without specifying -jar and instead name the application main class explicitly? This will allow you to put both your new-config and the application.jar on the classpath in the required order:

e.g. (assuming "new-config" is a directory containing the overridden properties file)

java -cp new-config:application.jar Application.Main.Class

I believe the name of main class can be found in the MANIFEST.MF file inside the jar ....

21
ответ дан 30 November 2019 в 07:18
поделиться

When you use the -jar option to launch your application:

... the JAR file is the source of all user classes, and other user class path settings are ignored.

as described here. A workaround would be to specify the classpath in the jar file's manifest to include the additional path (described here).

However, given that you are only talking about amending configuration you may want to take a different approach that is not reliant on the classpath. For example, I typically configure my applications through Spring using property files to determine the location of databases, etc. My Spring configuration is consistent across test, QA and live environments but I pass a different property file as a command line argument when launching the app.

Spring Configuration Snippet

<bean id="MyDataSource" class="org.springframework.jdbc.datasource.SingleConnectionDataSource">
    <property name="url" value="jdbc:microsoft:sqlserver://${dbServer}:${dbPort};DatabaseName=${dbName}"/>
    <property name="username" value="${dbUserName}"/>
    <property name="password" value="${dbPassword}"/>
    <property name="suppressClose" value="false"/>
</bean>

Property File Snippet

dbServer=MyServer
dbPort=1433
dbName=MyDb
dbUserName=Me
dbPassword=foobar
13
ответ дан 30 November 2019 в 07:18
поделиться

Архив JAR, указанный в параметре -jar, отменяет все другие значения.

Обычно это нужно делать с помощью внешнего файла конфигурации или создавать собственное решение с помощью ClassLoader.getResource () .

Мы используем специальное решение для решения этой проблемы - мы загружаем внутренние свойства следующим образом:

final Properties p = new Properties();
p.load(DefaultConfiguration.class.getResourceAsStream("config.properties"));

Затем мы загружаем внешний файл таким же образом и перезаписываем внутренние значения внешними.

Для получения информации о том, как работает загрузка классов, см .:

http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html

3
ответ дан 30 November 2019 в 07:18
поделиться

Использование только CLASSPATH может оказаться невозможным. Есть способы заставить вызов ClassLoader.getResource () использовать статический путь для поиска ресурса. Если он это делает, то он игнорирует CLASSPATH.

1
ответ дан 30 November 2019 в 07:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: