问题标签 [java]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
15 回答
22246 浏览

java - 应用程序配置文件

好的,所以我不想在这里开始一场圣战,但我们正在尝试整合我们处理应用程序配置文件的方式,并且我们正在努力决定采用的最佳方法. 目前,我们分发的每个应用程序都使用它自己的临时配置文件,无论是属性文件(ini 样式)、XML 还是 JSON(目前仅供内部使用!)。

目前我们的大部分代码都是 Java,所以我们一直在研究Apache Commons Config,但我们发现它非常冗长。我们还研究了XMLBeans,但它看起来很无聊。我也觉得好像我正被推向将 XML 作为一种格式,但我的客户和同事对尝试其他东西感到担忧。我可以从客户的角度理解它,每个人都听说过 XML,但归根结底,不应该使用正确的工具来完成这项工作吗?

现在人们在生产系统中使用什么格式和库,还有其他人试图避免尖括号税吗?

编辑:确实需要一个跨平台解决方案:Linux、Windows、Solaris 等,用于与配置文件接口的库的选择与格式的选择同样重要。

0 投票
12 回答
1357 浏览

java - Java中的数组数组

这对我来说是一件令人讨厌的事情……我是一名在 Java 中从事 JSP 项目的 PHP 人员。我知道如何通过太多代码和完全缺乏技巧来做我正在尝试的事情。

我宁愿做对。情况如下:

我正在写一个小型显示器,以向客户展示他们可以根据浇水组 (ABCDE) 浇灌草坪的日期以及一年中的什么时间。我们的季节是这样的: 夏季(5-1 到 8-31) 春季(3-1 到 4-30) 秋季(9-1 到 10-31) 冬季(11-1 到 2-28)

一个例子可能是:

如果我在 A 组,以下是我允许的时间: 冬季:仅限周一 春季:周二、周四、周六 夏季:任何一天 秋季:周二、周四、周六

如果我用 PHP 写这个,我会使用这样的数组:

我可以制作天数数组 (array("Tuesday","Thursday","Saturday")) 等,但这对于我真正想要完成的事情来说并不是必需的。

我还需要设置数组来确定我所处的季节:

谁能提出一个非常酷的方法来做到这一点?我会有今天的约会和群信。我需要一天(M)或一系列天(tTS),(Any)离开我的职能。

0 投票
7 回答
9392 浏览

java - 尝试查看表时 Oracle SQL Developer 没有响应(或建议使用 Oracle Mac 客户端)

我整天都在拿沙滩球(几个小时都没有做任何事情)。它不占用 CPU,不从磁盘读取,不使用网络。

我在Mac OS X 10.5.4上使用Java 1.6。它曾经工作过,现在即使重新启动计算机也无济于事。活动监视器说它是“(不响应)”。我唯一能做的就是杀死-9那个傻逼。

当我对过程进行采样时,我看到了:

一个不能解决此问题的可接受答案将包括一个用于 Mac 的体面的免费 Oracle 客户端的 URL。

编辑:@Mark Harrison 可悲的是,每次我启动它时都会发生这种情况,这不是旧的连接。我想避免在我的笔记本电脑上运行 Windows。我正在为我的 IDE 提供一些插件,但对我来说仍然没有解决方案。@Matthew Schinckel Navicat 似乎只有一个非商业的 Oracle 产品......我需要一个商业友好的产品(即使它需要花钱)。

0 投票
8 回答
5473 浏览

java - 如果您的 Java 应用程序在不做任何事情时正在消耗 CPU,您如何确定它在做什么?

我正在调用供应商的 Java API,在某些服务器上,JVM 在登录 API 后似乎进入了低优先级轮询循环(CPU 使用率为 100%)。其他服务器上的同一应用程序不会出现此行为。这发生在 WebSphere 和 Tomcat 上。环境设置起来很棘手,因此很难尝试在 Eclipse 中进行分析。

有没有办法分析(或其他检查方法)在 Tomcat 中运行的现有 Java 应用程序,以找出处于这种 spinwait 状态时正在执行的方法?当应用程序处于此状态时,它只执行一种方法(供应商的方法)。供应商无法复制该行为(当然)。


更新:

使用 JConsole,我能够确定谁在运行以及他们在做什么。我花了几个小时才弄清楚它为什么这样做。问题最终是正在使用的供应商 API jar 与它正在使用的数据库配置不完全匹配。默认情况下,在配置略有不匹配的服务器上启用跟踪和性能监控。我用了一个不同的罐子,一切都很好。

所以,谢谢,约书亚,你的回答。JConsole 非常易于设置和用于监控现有应用程序。

@Cringe - 我对您建议的一些选项进行了一些试验。我在设置 JProfiler 时遇到了一些问题,它看起来不错(但价格昂贵)。展望未来,我继续添加了 Eclipse Profiler 插件,我将查看不同的开源分析器以比较功能。

0 投票
4 回答
2670 浏览

java - 如何从我的属性文件中重构 HTML 标记?

我最近继承了一个国际化和大量文本的 Struts 1.1 Web 应用程序。许多 JSP 文件如下所示:

属性文件如下所示:

带有 N 种其他语言的适当翻译(messages_fr.properties 等)。

问题:

  1. DRY 违规- 我有 N 个对我的 Struts 操作 URL 的引用而不是 1 个,这使得重构操作 URL 容易出错。
  2. 混合的关注点——我的应用程序的标记现在不仅仅是我的 JSP 文件,这使得 Web 专家很难调整标记(使用 CSS 等)。
  3. 翻译后标记——每当我收到新翻译的文本时,我必须决定用<a>...</a>标记包围什么。英语很容易,但对于不熟悉的语言就不那么容易了。

我考虑在消息文件中添加占位符,例如:

但是随后“地址”和“联系信息”这两个词需要以某种方式本地化,用标记包装,并传递给我的消息标签——我看不到一个简单的方法来做到这一点。

我能做些什么来改善这一点?

0 投票
7 回答
6746 浏览

java - 在 Java 中解析搜索查询

我一直在尝试找到一种简单的方法来解析搜索查询并将其转换为我的数据库的 SQL 查询。

我找到了两个解决方案:

  1. Lucene:强大的基于 Java 的搜索引擎,包含一个查询解析器,但它不是很可配置,我可以找到一种方法来轻松破解/调整它以创建 SQL 查询。
  2. ANTLR:一个资深的文本词法分析器。用于构建从编译器到摩天大楼的任何东西。ANTLR 是高度可配置的,但从现在开始接触代码的每个人都必须学习一门新语言......

还有其他想法吗?

0 投票
4 回答
2562 浏览

java - 何时应该将多模块项目拆分为单独的存储库树?

目前我们有一个具有标准颠覆存储库布局的项目:

./trunk
./branches
./tags

然而,随着我们沿着 OSGi 和模块化项目的道路前进,我们最终得到了:

./trunk/bundle/main
./trunk/bundle/modulea
./trunk/bundle/moduleb ./tags/bundle/main-1.0.0
./tags/bundle/main-1.0.1
./tags/bundle/modulea -1.0.0

“构建”仍然非常单一,因为它按顺序构建所有模块,尽管我开始怀疑我们是否应该将构建/存储库重构为更像:

./bundle/main/trunk
./bundle/main/tags/main-1.0.0
./bundle/main/tags/main-1.0.1
./bundle/modulea/trunk
./bundle/modulea/tags/modulea- 1.0.0

在这种模式下,我会想象每个模块都构建自己,并将其二进制文件存储在存储库中(maven、ivy 或 subversion 存储库本身的其他路径)。

一旦模块化,是否有关于项目布局的指导方针或“最佳实践”?

0 投票
16 回答
416481 浏览

java - 如何通过 SFTP 从服务器检索文件?

我正在尝试使用 Java 使用 SFTP(而不是 FTPS)从服务器检索文件。我怎样才能做到这一点?

0 投票
2 回答
4059 浏览

java - 如果可能的话,如何使用通用参数覆盖 EJB 3 会话 bean 方法?

假设您有以下 EJB 3 接口/类:

然后是另一个访问 bean 的FooRepositorybean:

FooRepository但是,当调用 bean的 delete 方法时,不会执行覆盖方法。相反,仅执行中定义的删除方法的实现AbstractRepository

我做错了什么,或者仅仅是 Java/EJB 3 的限制,泛型和继承还不能很好地结合在一起?

0 投票
5 回答
3467 浏览

java - JNI 和 Java:ant 调用 make 还是 make 调用 ant?

我即将第一次进入 JNI(Java 本机接口)世界,以提供从特定于平台的 C/C++ 代码到 Java 的文件系统更改通知。那是除非有人建议我错过了一些出色的图书馆来做这件事。

作为 JNI 的新手,我设法在它的接口方面和库生成方面找到了很多文档,但在构建本机库方面我没有找到太多。

我有一个基于 ant 的现有 Java 源代码构建,所以我正在尝试确定是否应该让 ant 调用 make 来创建库,或者最好在创建后让 make 调用 ant图书馆?

这两个选项都不是非常好,但似乎都比试图让 ant 调用编译器来编译代码并直接生成库要好。