Tag: 属性

Maven:通过属性访问传递依赖的版本

在Maven项目中,我的一个直接依赖项具有间接依赖性com.foo:bar。 我需要的是Maven属性(例如${bar-version} ),其中包含此工件的版本号。 我需要这种机制来处理几个间接依赖项的版本号。 我从那个问题中了解到,我可以在antrun插件中使用${maven.dependency.com.foo.bar.jar.path}访问工件jar的本地路径。 我现在使用的解决方法是在antrun执行中解析它的值(例如/path/to/repository/com/foo/bar/2.1.1/bar-2.1.1.jar )并在那里定义一个属性(配置exportAntProperties是我的朋友)。 但是,由于默认情况下ant没有良好的字符串正则表达式操作,这非常麻烦。 是否有其他属性如${maven.dependency.com.foo.bar.jar.path} ? 我尝试了${maven.dependency.com.foo.bar.jar.version} ,但它没有用。 我还想了解这个属性背后的机制。 它是由Java类支持的吗? 就像project.organization.name是相应的Maven类中的getProject().getOrganizarion().getName() … 欢迎任何帮助! 谢谢,约翰内斯

使用属性文件中的属性

我为标题道歉..我找不到更好的方式来解释这种情况。 我使用Property类加载属性文件,如URL http://www.exampledepot.com/egs/java.util/Props.html中所述 我的问题是我可以在该属性文件中使用属性吗? 例: test.properties url.main=”http://mysite.com” url.games={url.main}/games url.images={url.main}/images . . . 是否可以使用其他语法? 谢谢

如何在java中添加新的系统属性

是否可以向Java系统属性添加新值。 如果有任何方法可以在Java系统属性中引入具有相应值的新密钥。

如何从Class文件夹外部读取java中的属性文件?

我对主类有以下路径结构: D:/java/myapp/src/manClass.java 我想把属性文件放入 D:/java/myapp/config.properties 它将包含文件名和一些其他配置。 我将在属性文件中设置文件名,如下所示: file=file_to_read.txt 这个file_to_read.txt将位于D:/java/myapp/folder_of_file/ 主类将首先从属性文件中读取文件名,然后从文件中获取内容。 如果config.properties和file_to_read.txt都在src/和mainClass.java中,我可以这样做。 但是我想要的方式无法成功。 任何人都可以帮我吗? 我需要你的建议,如果我想将myapp文件夹放在我的驱动器中的任何位置,并且我在上面描述的内部结构相同,那么程序将正确完成工作。 我还需要你的建议,如果我想从构建项目后创建的jar中完成这项工作,那么我可以毫无问题地这样做吗? 我试过以下只是为了阅读属性文件: URL location = myClass.class.getProtectionDomain().getCodeSource().getLocation(); String filePath = location.getPath().substring(1,location.getPath().length()); InputStream in = myClass.class.getResourceAsStream(filePath + “config.properties”); prop.load(in); in.close(); System.out.println(prop.getProperty(“file”)); 但是当尝试从属性文件中获取getProperty时,这会给出错误。 谢谢!

Java OutputStream等效于getClass()。getClassLoader()。getResourceAsStream()

我试图存储对我的应用程序属性所做的更改。 .properties文件位于resources包中,该包与包含我的UI和模型的包不同。 我使用以下方式打开包裹: this.getClass().getClassLoader().getResourceAsStream(“resources/settings.properties”) 是否有一个function相当的允许我在同一.Properties文件中持久更改属性类?

如何配置RMI环境以便我能够在“真实”网络中使用它?

因为我不想为基于客户端服务器的应用程序实现通信协议,所以我在两端都实现了RMI客户端和RMI服务器,以便在两个组件之间进行信息交换。 如果我尝试通过在同一台机器上启动两个组件来使用我的应用程序,一切正常。 但是,如果我将组件拆分为两台不同的计算机(Kubuntu 9.04作为具有禁用防火墙和本机Ubuntu 9.04环境的Windows 7 RC环境中的虚拟机),似乎RMI客户端无法执行以下方法:在服务器端定义。 (每个函数调用都会导致RMIexception。) 目前我只将网络接口两侧的系统属性“java.rmi.server.hostname”设置为应该用于数据交换的网络接口,并注册默认端口以与rmi守护进程(?)rmid进行通信。 有人知道会出现什么问题吗? 我是否必须设置一些其他参数,如“java.rmi.server.codebase”( http://java.sun.com/j2se/1.4.2/docs/guide/rmi/javarmiproperties.html )才能使用我的应用程序中的RMIfunction? 编辑:好的,这里有一些额外的信息: 在初始化阶段,我的客户端尝试建立与服务器组件的RMI服务器的连接,该服务器组件使用以下两种方法进行初始化: private void initialize() { // set ip address of rmi server System.setProperty(“java.rmi.server.hostname”, ipAddress); // try to register rmi server try { LocateRegistry.createRegistry(Registry.REGISTRY_PORT); } catch (Exception e) { // ignore } } public void start() { System.out.print(“starting master control RMI server […]

使用Spring注释读取文件属性

我正在尝试学习如何使用spring读取属性文件。 在互联网搜索后,我发现我可以使用@value和@PropertySource注释来实现这一点。 我创建了一个具有以下结构和类代码的项目: 项目结构: AppConfigMongoDB.java实现: package com.mongodb.properties; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; @PropertySource(“classpath:config/config.properties”) public class AppConfigMongoDB { @Value(“#{mongodb.url}”) private String mongodbUrl; @Value(“#{mongodb.db}”) private String defaultDb; public String getMongoDb() { return defaultDb; } public String getMongoDbUrl() { return mongodbUrl; } } SpringConfiguration.java实现: package com.mongodb.properties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SpringConfiguration { @Bean public AppConfigMongoDB getAppConfigMongoDB(){ […]

Java .properties文件为强类型类

有没有办法将属性文件作为强类型类? 我想有代码生成器,但使用注释做它会更酷。 我的意思是; foo.properties file keyFoo = valuefoo keyBar = valuebar 也许是 @properties(file=”foo.properties”) class foo { } 变 class foo { String getKeyFoo() { } String getKeyBar() { } } 如果不是,我会为此启动一个开源项目吗? 对问题的补充; 认为我们有一个foo.properties文件,可以说超过10个条目; 并认为它被用作一个简单的配置文件。 我认为这个配置条目应作为配置类提供,并将相关的getXXX方法提供给设计的其他部分。 然后系统的其余部分通过提供的类访问配置,而不是处理密钥名称,并且不需要打扰配置的来源。 然后,当您测试调用者并且对文件系统的依赖性消失时,您可以使用模拟替换此类。 另一方面,以强类型方式获取所有条目真的很不错。 所以这个问题是幕后的代码生成问题,它与运行时无关。 但是使用外部代码而不是注释生成代码对我来说似乎不太好。 虽然我对注释不是很熟悉,但我想这可以实现(但我要记住,注释不能像McDowell点那样生成类)

调用者阻塞,直到getFoo()准备好了值?

我有一个Java Thread ,它暴露了其他线程想要访问的属性: class MyThread extends Thread { private Foo foo; … Foo getFoo() { return foo; } … public void run() { … foo = makeTheFoo(); … } } 问题是从运行到foo可用需要很短的时间。 调用者可以在此之前调用getFoo()并获取null 。 我宁愿他们只是阻塞,等待,并在初始化发生后获取值。 ( foo之后永远不会改变。)在它准备好之前它将是几毫秒,所以我对这种方法很满意。 现在,我可以通过wait()和notifyAll()实现这一点,并且有95%的可能性我会做得对。 但我想知道你们都会怎么做; 在java.util.concurrent有一个原语可以做到这一点,我错过了吗? 或者,你会如何构建它? 是的,让foo变得不稳定。 是的,在内部锁定Object上同步并将检查放入while循环,直到它不为null 。 我错过了什么吗?

在Wicket中使用参数化UI消息的简单方法?

Wicket拥有灵活的国际化系统 ,支持以多种方式对UI消息进行参数化。 例如在StringResourceModel javadocs中有例如: WeatherStation ws = new WeatherStation(); add(new Label(“weatherMessage”, new StringResourceModel( “weather.${currentStatus}”, this, new Model(ws))); 但我想要一些非常简单的东西,并且找不到一个很好的例子。 在.properties文件中考虑这种UI消息: msg=Value is {0} 具体来说,我不想为此目的创建一个模型对象(使用要替换的值的getter;如上例中的WeatherStation)。 如果我已经拥有局部变量中的值,那就太过分了,否则就不需要这样的对象了。 这是用正确的值替换{0}的一种愚蠢的“powershell”方式: String value = … // contains the dynamic value to use add(new Label(“message”, getString(“msg”).replaceAll(“\\{0\\}”, value))); 是否有一种干净的,更多的Wicket-y方式来做到这一点 (这不比上面的长得多) ?