Измените свой класс, чтобы создать новую ссылку вместо того, чтобы использовать одну:
public class SomeObject{
public String text;
public SomeObject(String text){
this.setText(text);
}
public String getText(){
return text;
}
public void setText(String text){
this.text = new String(text);
}
}
Вы можете использовать что-то вроде этого (я не претендую на идеальное решение):
public class SomeObject{
private String text;
public SomeObject(String text){
this.text = text;
}
public SomeObject(SomeObject object) {
this.text = new String(object.getText());
}
public String getText(){
return text;
}
public void setText(String text){
this.text = text;
}
}
Использование:
SomeObject s1 = new SomeObject("first");
SomeObject s2 = new SomeObject(s1);
s2.setText("second");
System.out.println(s1.getText()); // first
System.out.println(s2.getText()); // second
У вас есть 2 варианта:
Manifest.MF
и скопировать их рядом с основным банком приложения Я подготовил образец проекта, который демонстрирует оба подхода: HelloWithDependencies.zip .
Артефакты создаются в каталоги out\single
и out\linked
.
Релевантные конфигурации:
Если вы используете maven для создания своего приложения, это не правильный способ добавить внешнюю библиотеку. Вы должны либо
mvn install:install-file -Dfile=myJar.jar -DgroupId=com.yourproject -DartifactId=yourproject -Dversion={version} -Dpackaging=jar
. Вариант 1 предпочтительнее, так как вам не нужно держать банку в своем проекте.
pom.xml
, автоматически появятся в банке, созданной Maven. В значительной степени то же самое относится к проектам на базе Gradle. – CrazyCoder 14 February 2017 в 09:23resources
(тот, который настроен как корень ресурсов). В примере проекта это тот же каталог, где вы видите файлlog4j.properties
. Вы можете добавить больше корней ресурсов, если вам нужно, и файлы из этих каталогов появятся в выводе компилятора, поэтому вам не нужно настраивать конфигурацию артефакта. – CrazyCoder 16 February 2017 в 09:11