小编Ste*_*hen的帖子

什么是java.net.InetAddress.getLocalHost();的Linux命令行等效项

我需要与不了解Java的网络管理员进行沟通,以解决运行getLocalHost()时发现的网络设置问题。该框位于两个网络上,并且getLocalHost()返回错误的一个。在我们所有其他服务器上,都不会发生这种情况。我希望能够使用命令行显示网络管理员,这是错误的。但是我对linux网络命令还不够熟悉,无法知道要调用什么。

java linux network-programming

5
推荐指数
1
解决办法
1017
查看次数

可以使用Hibernate Schema生成在没有数据库连接的情况下生成DDL吗

我想使用 Hibernate 的模式生成来为我无法直接从我的 PC 访问的数据库生成 DDL,只需使用 hibernate 配置文件。如果可能,我想跳过本地 oracle 数据库的安装。hibernate 可以为适当方言、版本等的“理论”数据库生成 DDL,还是白日做梦?

有没有其他工具可以做到这一点?

java database oracle ddl hibernate

5
推荐指数
1
解决办法
2371
查看次数

为什么 File.exists() 在多线程环境中表现不稳定?

我有一个在 java JDK 1.7 下运行的批处理。它在带有 RHEL、2.6.18-308.el5 #1 SMP 的系统上运行。

此过程从数据库中获取元数据对象列表。它从这个元数据中提取文件的路径。该文件可能实际存在,也可能不存在。

该进程使用 ExecutorService ( Executors.newFixedThreadPool()) 来启动多个线程。每个线程都运行一个 Callable,它启动一个进程,该进程读取该文件并在该输入文件存在时写入另一个文件(并记录结果),如果该文件不存在则不执行任何操作(记录该结果除外)。

我发现行为是不确定的。尽管每个文件的实际存在始终不变,但运行此过程并不会给出一致的结果。它通常会给出正确的结果,但偶尔会发现一些确实存在的文件不存在。如果我再次运行相同的过程,它会发现它之前所说的文件不存在。

为什么会发生这种情况,是否有更可靠的替代方法?在其他线程尝试读取目录时在多线程进程中写入文件是否错误?较小的线程池会有所帮助(目前为 30)吗?

更新: 这是在这种情况下工作线程调用的 unix 进程的实际代码:

public int convertOutputFile(String inputFile, String outputFile)
throws IOException
{
    List<String> args = new LinkedList<String>();
    args.add("sox");
    args.add(inputFile);
    args.add(outputFile);
    args.addAll(2, this.outputArguments);
    args.addAll(1, this.inputArguments);
    long pStart = System.currentTimeMillis();
    int status = -1;
    Process soxProcess = new ProcessBuilder(args).start();

    try {
        // if we don't wait for the process to complete, player won't
        // find the converted file.
        status = soxProcess.waitFor(); …
Run Code Online (Sandbox Code Playgroud)

java multithreading nio java-io jdk1.7

5
推荐指数
3
解决办法
2018
查看次数

继承Gradle中的行为?

我是Gradle的新手,并且是经验丰富的Maven专家。到目前为止,尽管我喜欢Gradle,但我已经缺少Maven的功能-因为它不存在,或者因为我没有找到它,或者因为它被称为其他东西。

在Maven中,有一个继承的概念,通过这个继承,一个POM可以从父代继承属性和某些行为,并且由于父POM也可以从祖父母POM等继承父代。因此,可以对构建位进行模板化行为。这是我希望能够做到的事情,因为我正在设计替代旧的硬性构建系统(称为“规则”之类的东西)的过程。Maven父级中定义的任何此类属性或行为都可以在子级中覆盖。

有人可以指出我在Gradle中可以找到类似概念的地方吗?

我到处都是文档,却没有确切地看到我所追求的,但是也许我会错过它?我查看了Gradle的比较表,发现“命名域对象容器”被描述为“非常强大的功能”,但是该链接指向的是Javadoc,而不是示例如何使用它。
然后是“用于预配置构建的多个混入”,这听起来也很有趣,但同样没有任何示例。

在此先感谢任何可以提供帮助的人。

更新: 我在这里重复我在下面的评论中所说的,以强调我要在这里完成的工作:

在我的情况下,有数百个多构建项目,其子项目大多属于以下几类之一,每个子项目都有一致的结构和假设(关于目录结构,使用的rpm脚本等),我不想存储所有这些一致性在父级中(在每个父级项目中都需要重复),但在所有“父级”层级上都存在并且所有子项项目都可以访问的“元层”中。 这种可访问性可能应该通过父项目来实现,但不应驻留在那里。

gradle maven

5
推荐指数
1
解决办法
1240
查看次数

JTextComponent键映射

我需要创建一个派生自JTextComponent(从JTextPane,实际)的类,其中至少有一个默认键映射被更改.也就是说,在我特殊的JTextPane中,我希望">"键击执行操作而不是将该字符添加到文本窗格中,因为默认情况下会处理所有可打印的键入字符.

为了打破正常行为,有以下API:

  • JTextComponent.getKeymap()
  • Keymap.addActionForKeyStroke()
  • JTextComponent.setKeymap()

但是,我发现尽管这些方法不是静态的,但它们会影响JTextComponent我的应用程序中所有s 使用的键盘映射.没有简单的机制可以克隆Keymap,可能会解决问题,或者我错过了什么.

我所追求的是一种改变我的JTextPane类的键映射的方法,但不是所有来自JTextComponent类的键.

或者我应该在别处寻找?

java swing keymapping jtextcomponent

4
推荐指数
1
解决办法
1312
查看次数

用Java打印二进制格式的short

在java中输出short的二进制表示是否有内置支持?

当然,这个,建议使用Integer.toBinaryString(),它的工作原理.没有类似的Short.toBinaryString().还有其他什么吗?

更新: Integer.toBinaryString()不能像Short.toBinaryString()一样工作,如果它存在的话.

public static void main(String[] args) {
    System.out.println(Integer.toBinaryString(Short.MIN_VALUE));
}
Run Code Online (Sandbox Code Playgroud)

产生

11111111111111111000000000000000
Run Code Online (Sandbox Code Playgroud)

而我想看到

1000000000000000
Run Code Online (Sandbox Code Playgroud)

当然,切掉前16位数字很容易,但这是我的观点.这种方法应该存在.

java binary short

4
推荐指数
1
解决办法
7538
查看次数

音频剪辑无法获取第一次使用 HTML5 &lt;audio&gt; 标签播放的持续时间

这是一个非常令人费解的问题,我在这里绕了好几次都没有找到解决方案。 这个问题变得太复杂了,无法正确接受我的所有更新和格式,所以让我们从这里开始。

基本问题是音频剪辑是从带有某种音频播放器的网页启动的。当页面出现时,浏览器不知道剪辑的持续时间,并且在第一次播放时,无论播放器具有什么 UI,都无法显示播放器在文件中的进度,即使它可以听得见地播放剪辑。一旦播放器完成剪辑,它也会了解持续时间,并且在随后的重播中,UI 会显示进度。

这是当前的状态:

1)最初的问题假设jQuery jPlayer与该问题有关,但随后的测试表明事实并非如此。 删除 jPlayer 并使用 HTML5 音频标签显示了完全相同的问题。

2) 最初我认为问题可能出在 SoX 将 .vox 文件转换为 .wav 时,但在 SoX 邮件列表上查看后,我确信情况并非如此。

3)有人建议(主要由 Gyrocode.com)问题可能在于使用 .wav 文件,但我可以使用 .ogg 和其他格式重现完全相同的问题。

我可以看到Gyrocode 显示的一些示例与我正在做的示例之间的唯一区别是,我的代码最初放入一个虚拟源,然后在向用户显示音频播放器之前动态更改它(在模式内)对话)。

下面是代码的骨架形式。

HTML:

<div class="form-group">
    <label class="col-sm-4 control-label">Play Audio</label> 
    <div class="col-sm-8">
        <div style="box-sizing:content-box;" class="container" id="player-container">
            <audio controls src="NONE" id="audio-player" preload="metadata"></audio>
        </div>
    </div>
</div>  
Run Code Online (Sandbox Code Playgroud)

JS:

/**
* JavaScript functions for populating data on the transcripts page.
*/

var oParams = new Object();
// temporarily hardcoded
oParams.userId="sc1478"; …
Run Code Online (Sandbox Code Playgroud)

javascript progress html5-audio

4
推荐指数
1
解决办法
5383
查看次数

无法将Control-Backspace映射到KeyStroke

我无法将Control-Backspace键映射到KeyStroke.以下对我没有意义.

import java.awt.event.KeyEvent;
import javax.swing.KeyStroke;
public class TestControlBackspace {
    public static void main(String[] args) {
        KeyStroke ks1 = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, KeyEvent.VK_CONTROL);
        KeyStroke ks2 = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, KeyEvent.VK_SHIFT);
        KeyStroke ks3 = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0);
        System.out.println(ks1);
        System.out.println(ks2);
        System.out.println(ks3);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

按下BACK_SPACE

按下BACK_SPACE

按下BACK_SPACE

我在这里错过了什么吗?

java swing key-bindings keyboard-events backspace

3
推荐指数
1
解决办法
1371
查看次数

无法在Windows XP上安装MYSQL

伙计,我的筹码堆满了!

我已经尝试了四次在Windows XP上的开发人员配置中安装MySQL.它因错误1045而失败.用户'root'@'localhost'的访问被拒绝(使用密码NO).我浏览整个安装应用程序,它实际上启动了服务,然后在"应用安全设置"失败.

没有运行防火墙,我可以访问端口3306.

我得到以下"有用"的提示.

如果您在卸载MySQL服务器后重新安装,请注意数据目录未自动删除.因此,仍需要上次安装的旧密码才能连接到服务器.在这种情况下,请选择立即跳过并从开始菜单重新运行配置窗口.

什么是"数据目录"?我尝试完全卸载.据我所知,这不会从磁盘中删除任何内容,只会删除注册表.还有一个C:\ Program Files\MYSql目录.好的,我删除了整件事并重新安装.我搜索了所有名为mysql的文件和文件夹.删除后没有任何内容.我重新安装,这是一回事.如何清理它以便重新安装?有什么其他数据文件可以摆脱?或者我需要重启,或者什么?

想想,我进入这个的唯一原因是因为我丢失了root密码.

AARGH!

mysql installation

2
推荐指数
1
解决办法
1697
查看次数

即使Look and Feel UI另有规定,如何强制JPopupMenu显示标题?

Jopadoc for JPopupMenu构造函数说明如下:

JPopupMenu的

public JPopupMenu(String label)

Constructs a JPopupMenu with the specified title.

Parameters:
    label - the string that a UI **may** use to display as a title for the popup menu.
Run Code Online (Sandbox Code Playgroud)

关键词是"可能".显然,在默认UI中,创建弹出菜单时会忽略此类标题.无论L&F是否认为我应该使用,我都非常希望在我的一些弹出菜单中使用这些标题.我无法找到它的钩子.显然,这深埋在UI代码的某个地方.有没有办法覆盖这个默认值?

如果不这样做,我尝试添加一个禁用的菜单项作为菜单的第一项.麻烦的是,我失去了对渲染的控制,它呈现出"灰色"风格,而不是作为重要标题出现.如果我不禁用它,那么它按我想要的方式呈现,但是可以选择,标题不会.

那么底线,我如何强制UI显示我的标题,或者如果失败,如何在菜单顶部添加一个不可选择的菜单项,我有完全渲染控制权?

java swing popup menuitem

2
推荐指数
1
解决办法
3887
查看次数