小编Bla*_*ppo的帖子

Java阵列比较

在Java中工作,假设我有两个对象,多亏了obj.getClass().isArray(),我知道它们都是数组.让我们进一步说,我想将这两个数组相互比较 - 可能是通过使用Arrays.equals.是否有一种优雅的方式来做到这一点,而不是诉诸一个大的详尽的if/else树来找出Arrays.equals需要使用的味道?我正在寻找的东西不像这样:


      if (obj1 instanceof byte[] && obj2 instanceof byte[]) {
         return Arrays.equals((byte[])obj1, (byte[])obj2);
      }
      else if (obj1 instanceof boolean[] && obj2 instanceof boolean[]) {
         ...
Run Code Online (Sandbox Code Playgroud)

java arrays

9
推荐指数
1
解决办法
8657
查看次数

从Java内部调用VLC时死亡

我遇到了一个问题,此时此刻,我甚至不知道如何正确调查.欢迎并赞赏有关如何获取更多信息的任何建议.

我公司销售的产品以WinXP PC为核心.该产品的任务之一是能够按需启动视频播放器 - 在这种情况下是VLC.(具体来说,VLC为0.8.6d;它已经过时了几年,但升级是有问题的,原因有几个.)负责启动播放器并执行许多其他任务的应用程序是用Java编写的.

我的桌子旁边有一个试验台.过去工作得很好.但由于某种原因,当Java应用程序尝试启动VLC时,它现在会发出"发送错误报告"窗口:"VLC媒体播放器遇到问题,需要关闭......"你知道那个.

显然,我已经做了一些令人烦恼的事情.问题是,我既不知道它可能是什么,也不知道如何修复它.

我知道的东西:

  • 这不是代码错误.我在我的开发桌面计算机上运行相同的软件,它没有这个问题.
  • 它不是VLC安装,也不是格式错误的视频文件.当我从Java捕获用于启动它的命令并从"cmd"窗口手动输入该命令时,它工作正常.
  • 如果你在进行系统调用时没有手动消耗STDERR和STDOUT,那就不是那个偷偷摸摸的bastich bug,Java会惩罚你.我已经满足了.
  • 它失败时我没有收到任何错误消息或输出; 它只是失败了,并给了我弹出窗口.

我很难过.关于它可能是什么或如何弄清楚它是什么的建议是非常受欢迎的.

java windows vlc

8
推荐指数
1
解决办法
495
查看次数

Windows Media Player忽略我

我曾经在这里问过有关通过Java控制Windows Media Player的问题. 我已经取得了进步,但我遇到了一个棘手的问题,所以我回来寻求帮助.

我按照上次给出的建议,安装雅各布.我从测试脚本中执行这些行:

ActiveXComponent wmp = new ActiveXComponent("WMPlayer.OCX");
wmp.invoke("openPlayer", "http://somafm.com/wma128/groovesalad.asx");
Run Code Online (Sandbox Code Playgroud)

...和WMP弹出,玩SomaFM."W00t!" 我认为."我已经解决了这个问题!"

除了当我在创建它之后与该对象交互时,它似乎与WMP实例播放没有任何关系.当我执行此代码时:

ActiveXComponent wmpSettings = new
ActiveXComponent(wmp.getProperty("settings").toDispatch());
System.out.println("VOLUME: " + wmpSettings.getProperty("volume"));
wmpSettings.setProperty("volume", 0);
System.out.println("VOLUME: " + wmpSettings.getProperty("volume"));
Run Code Online (Sandbox Code Playgroud)

...我得到的输出:

VOLUME: 50
VOLUME: 0

这似乎无害,除此之外

  1. "50"的音量与实际设定的播放器音量无关
  2. setProperty调用后,播放器的音量实际上没有变化.

我也尝试了其他属性,但它是一样的:属性的值似乎与玩家实际做的事情没有关系,而改变它们似乎改变了被操纵对象的状态,它对实际玩家没有影响. (每次运行脚本时,我都得到完全相同的输出,所以无论是什么,当我转动"音量"时我都会改变它,它在代码之外没有任何持久性.)

显然我做错了什么,但我一直摸索着试图找出什么.任何人都可以向我提供任何有关出错的信息,或者我接下来应该尝试的内容吗?

(注意:我甚至不确定"WMPlayer.OCX"是正确的输入参数.我在注册表中的HKEY_CLASSES_ROOT中试验了看起来很可能的条目,直到找到这个.)

我提前感谢任何人提供的任何帮助.


编辑,4/15/2009: 我在一家名为EZ JCom的公司的产品中找到了一个特定于WMP的软件包.它失败的方式与我之前看到的完全相同,要么它只是Jacob的包装器,要么是WMP ActiveX/COM接口完全坏了.(等等,为什么我说"要么"?)

我与客户服务人员聊天,他们最终展示了如何在没有实际用处的情况下提供帮助.他们帮助我纠正了他们提供的非编译示例代码作为他们的WMP代码的实例,但是当我纠缠他们以了解get/set卷方法应该如何工作时,我得到了这个:

"对不起,但这里没有WMP深度专业知识--EZ JCom只是Java与WMP等其他程序之间的桥梁建设者."

请记住,我评估的他们的包实际上被称为"wmp.WindowsMediaPlayer".如果我得到它的工作,我将不得不与我的老板谈论花费600美元的许可证.人们想知道如果他们真正拥有自己产品的专业知识,他们会收取什么费用.

所以,没有真正的进步.只是想我会分享.


编辑,2009年4月20日: 是的,我仍然在嘲笑这个.我目前的操作理论是,为了获得音量设置,我需要远程访问WMP.我已经看到了IWMPRemoteMediaServices和IServiceProvider接口的提及,后者的QueryService方法提供了指向前者的指针.不幸的是,我没有任何关于如何获得IServiceProvider的运气.我已经看到提到它可以从Windows"系统"对象访问,但我无法弄清楚如何获取该对象.(而且由于"系统"这个词在Java中非常重要,谷歌给了我一个喧闹的声音:信号比率.)如果有人对如何把手放在代表System.dll的COM对象上有任何建议,我很乐意听到.


编辑,4/21/2009: 澄清:这是在XP系统上.

另外:我的研究表明仅仅谈论WMP对象是不够的; 你需要把它包裹得更紧,所以它可以回复.有一个包含大量C++内容的WMP SDK,但它似乎依赖于Microsoft Visual C++对我没有的代码的扩展,并且它们不是免费赠送的.(此外,我在12年内没有完成C++.)我知道C#可以实现,但如果我不在Java之外,我需要将解决方案作为独立的可执行文件并且不安装.NET相关的机器.


编辑,2009年4月22日: 根据Mark的答案,我从WinUser.h中挖出了APPCOMMAND_MEDIA_*常量并尝试了以下代码,它使用了NativeCall api:

final int APPCOMMAND_MEDIA_PLAY = 46;
final int APPCOMMAND_MEDIA_PAUSE = …
Run Code Online (Sandbox Code Playgroud)

activex windows-media-player

7
推荐指数
1
解决办法
2392
查看次数

如何使用Flex获得平滑的文本爬网?

我正在开发一个独立的Flash应用程序(使用Flex 3/ActionScript 3编写),它具有文本爬行功能,就像您在观看有线新闻频道时可能在电视底部看到的那样; 它是一个长而窄的盒子,文本从右到左移动.

我已经通过创建Label元素,用文本填充它,然后使用带有Linear.easeNone缓动函数的mx:Move对象移动它来实现它.它有效,但它有很大的改进空间.它看起来有点生涩,往往会有相当多的"撕裂"(文本的上半部分和下半部分有时会失去同步).

我尝试在问题上投掷数学,以使爬行的移动速率与显示器的刷新率同步,但这是一个半身像.我发现应用程序的帧速率跳得太厉害了."优化"爬行在看起来如丝般光滑和癫痫之间变化.

还有什么人会推荐我试着让这个东西顺利出来吗?你尝试过一些替代设计吗?


编辑: 某些上下文:抓取是数字标牌应用程序的一部分(从独立的Flash投影仪播放 - 无需网络浏览器),可以在屏幕上的其他位置执行操作,包括视频播放和渲染文本和图像.它在视频播放过程中肯定会变得更加笨拙,但它永远不会像我希望的那样顺畅.

apache-flex actionscript

7
推荐指数
1
解决办法
1496
查看次数

取消优化MySQL

是否有一个简单的命令可以让我调整一个MySQL数据库实例比正常运行慢?

我正在研究记录和重放数据库交互的代码.它所做的一件事就是跟踪给定查询/命令执行的时间,如果它在重放期间运行得非常慢,则会发出警告.当然,如果你不测试它,它不起作用; 我正在尝试为此功能进行自动测试.我可以对我的测试数据库做些什么来搞砸性能?我需要做的就是可靠地为任何给定的查询添加2+毫秒,并且我已经设置好了.

mysql

7
推荐指数
1
解决办法
91
查看次数

模拟Apache会话数据以进行单元测试

我正在使用一个Web应用程序,通常在Apache下运行mod_perl.一位同事和我正在尝试进行一些单元测试.是否有任何好的工具或技术可用于模拟会话和请求等,以帮助我们在Web服务器上下文之外运行此代码?

apache perl unit-testing

7
推荐指数
1
解决办法
364
查看次数

使用 Javascript 更改输入文本值不会更改显示

我正在尝试input根据用户操作更改文本字段的值。我是这样做的:

document.getElementById(textFieldID).value = newValue;
Run Code Online (Sandbox Code Playgroud)

它不是很有效——字段中的原始文本保留在屏幕上,没有改变。但是,当我提交表单时,它的行为好像确实正确更改了值。(并且调试alert确认是的,我正在点击代码中的那一点并传入正确的字段 ID 和文本值。)有人有任何见解吗?我需要做些什么来重绘input元素吗?


编辑: 根据 Jeff B 的要求,以及这似乎让每个人都难倒的事实,这里有一些相关的代码:


<script LANGUAGE="JavaScript" TYPE="text/javascript">
   function changeText(changeSelector)
   {
      var myindex  = document.getElementById(changeSelector+"Recent").selectedIndex;
      var SelValue = document.getElementById(changeSelector+"Recent").options[myindex].value;
      document.getElementById(changeSelector).value = SelValue;
      document.getElementById("historicalText").value = SelValue;
      document.getElementById("historicalTextSelect").value = changeSelector;
   }
</script>

<input onChange="updateScrollingPreview1217(this); return true;" type="text" id="crawlMsg1217" name="crawlMsg1217" size="60" maxlength="1000" value="">

<select id="crawlMsg1217Recent" name="crawlMsg1217Recent" onchange="javascript:changeText('crawlMsg1217');">
[options go here]
</select>
Run Code Online (Sandbox Code Playgroud)

而那个“onChange”处理程序并不是阻碍工作的原因;无论有没有它,我都会得到相同的行为。


编辑 2: 看起来问题是由我们产品使用的第三方拼写检查器“JSpell”引起的。(我被告知客户更喜欢使用它而不是浏览器内置的拼写检查;去图。)它在我的测试机器上似乎配置有误,所以我将尝试解决这个问题并祈祷它会出现问题离开。如果没有……应该很有趣。
编辑3:是的 。Fscking JSpell。为了子孙后代,刚刚发布了一个完整的答案,明天我被允许时会接受它。感谢所有试图提供帮助的人;+1 到处都是,希望我能提供更多。

javascript

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

JPA和PostgreSQL

我正在使用JPA的EclipseLink实现来与PostgreSQL数据库进行通信的项目.我有一个任务,PostgreSQL NOTIFY/LISTEN似乎是一个完美的契合.不幸的是,我是一个JPA新手,我正在努力弄清楚如何让它工作.所以我想我真的有两个问题; 回答任何一个都会让我开心.

1)对于掌握与数据库的直接JDBC连接,最好的方法是什么?(我真心希望这将成为类型org.postgresql.PGConnection.)

要么

2)org.postgresql.PGConnection.getNotifications()通过EclipseLink JPA 模拟/访问的最佳方式是什么?

非常感谢您的帮助.


编辑: 两个工作解决方案!我喜欢这个网站.如果任何人有任何关于隐藏的问题/好处的说法,那么在我发出勾选标记之前,Pascal或Balus的解决方案要比其他解决方案更好,我想听听它.

java postgresql jpa eclipselink

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

如何判断PDO模块是否已安装/禁用?

我正在开发一个PHP应用程序.我刚刚将一堆文件移到生产服务器上,发现PDO显然没有安装(Fatal error: Class 'PDO' not found in [file] on line [line]).prod服务器使用PHP 5.3.6; 根据我发现的文档,"从PHP 5.1.0开始默认启用PDO和PDO_SQLITE驱动程序".

我在管理PHP方面经验很少.如何判断此模块是否已安装但已禁用或完全不存在?为了让它运行,我需要做些什么?

php pdo

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

在Windows中转义curl命令

我试图curl从Windows命令行运行一个命令,但对于我的生活,我无法弄清楚我应该如何逃避它.

我正在执行这个:

C:\WINDOWS\system32>curl --anyauth --user user:password -X POST -d "{\"rest-api\":{\"name\":\"BizSimDebug3\"}}" -H "Content-type: application/xml" http://localhost:8002/v1/rest-apis
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

<rapi:error xmlns:rapi="http://marklogic.com/rest-api">
  <rapi:status-code>400</rapi:status-code>
  <rapi:status>Bad Request</rapi:status>
  <rapi:message-code>RESTAPI-INVALIDCONTENT</rapi:message-code>
  <rapi:message>Your bootstrap payload caused the server to throw an error.  Underlying error message: XDMP-DOCROOTTEXT: xdmp:get-request-body() -- Invalid root text "{&amp;quot;rest-api&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;BizSimDebug3&amp;quot;}}" at  line 1</rapi:message>
</rapi:error>
Run Code Online (Sandbox Code Playgroud)

还有什么我需要做的事情来逃避-d标志中的内部引号吗?还是我完全忽略了真正的问题?

windows curl marklogic

4
推荐指数
2
解决办法
5203
查看次数