为什么java -version会返回旧版本?

操作系统:Windows XP 我正在使用yuicompressor-2.4.2压缩一些CSS,然后再上传到我的服务器。 但是当我运行它时,会出现以下exception: 线程“main”中的exceptionjava.lang.UnsupportedClassVersionError: com / yahoo / platform / yui / compressor / Bootstrap(不支持的major.minor版本48.0) 所以我认为这是因为JRE。 我输入的命令是cmd:java -version 它说:java版本“1.3.1_01”,但应该说“1.6.0_16”,因为我已经安装了最新版本。 我该怎么做才能让Java使用最新版本而不是旧版本?

我必须将所有依赖DLL放入JDK的bin文件夹中吗?

我的java应用程序依赖于DLL,该DLL 进一步依赖于libstdc++-6.dll 。 我尝试过了: 将libstdc++-6.dll放在一个文件夹中 并将文件夹放在%PATH% 然后我遇到了java.lang.Unsatisfied LinkError: The specified procedure could not be found从Eclipse启动应用程序时java.lang.Unsatisfied LinkError: The specified procedure could not be found 。 但是如果我把libstdc++-6.dll放到JDK’s bin folder ,比如C:\Java\jdk1.6.0_45_32bit\bin 。 它工作正常。 但我不想污染JDK文件夹。 我记得windows会搜索%PATH%来定位依赖的DLL。 为什么我不能在这个问题上使用%PATH%? 更新1 Windows中有2个不同的%PATH%环境变量。 用户变量 系统变量 我只是偶然发现: 如果我将DLL的文件夹放到User%PATH%,则无法找到它。 如果我将DLL的文件夹放到System%PATH%,它可以工作。 为什么? 更新2 灵感来自这个线程: 系统与用户PATH环境变量… winmerge只有在我添加路径到用户PATH时才有效 我开始怀疑我的User%Path%可能太长了 。 所以我将包含我的依赖DLL的文件夹路径从User%PATH%的末尾移动到开头 。 它现在有效! 首先,我得出结论,实现Windows的DLL查找算法的人有一些截断问题。 我几乎认为这是另一个恼人的Windows Bug。 但我写了另一个Windows应用程序,它有类似的DLL依赖关系来证实我的猜测。 该应用程序工作正常! […]

如何将AT命令的输出转换为java中的字符串?

我正在尝试读取AT命令的结果(执行从控制台对GSM调制解调器执行各种操作的命令)。 我已经看到并成功测试了使用Java OuputStream类来获取AT命令的结果作为输出流但我需要做的是将结果不是作为输出流而是在我的类中的变量(现在为String)。 如果可以这样做的话 outStream.write((“Some At command”).getBytes()); 哪个工作正常,怎么可能做这样的事情 Strign resultOfCommmand=…..result of some AT command; 我是这样尝试的 InputStream is = new ByteArrayInputStream((“some at commamd”).getBytes()); String result = getStringFromInputStream(is); System.out.println(“66666666666666666666—–“+result); ///////////////////// private static String getStringFromInputStream(InputStream is) { BufferedReader br = null; StringBuilder sb = new StringBuilder(); String line; try { br = new BufferedReader(new InputStreamReader(is)); while ((line = […]

从一个长流创建流的流

我想根据Streams的内容将单个Stream拆分为Streams Streams 。 生成的Stream应包含部分原始流的数据。 我的实际应用程序更复杂(它将日志行分组在时间间隔列表中),但我的问题是如何处理流,所以在这里我要问一个简化的例子。 示例问题 我希望能够根据重复的相同数字将Stream拆分为Stream<Stream> ,只留下奇数的流。 例如,以下流包含: {1,1,1,2,2,2,3,6,7,7,1,1} 需要产生包含以下内容的流的流: {{1,1,1},{3},{7,7},{1,1}} 通过使用filter开始(或结束),我可以做出偶数数字: Stream input = …; Straem<Stream> output = input.filter(this::isOdd).someOtherOperation(); 这是不希望的,因为它意味着两次评估每个输入值,这是可以接受的,但我宁愿避免这种情况。 解决方案的想法 我当前的解决方案是迭代流的内容并创建List<List>并将其转换为Stream<Stream> 。 但是这意味着完整的结果保存在内存中(这对我的应用程序来说是不受欢迎的)。 我也认为我可以通过编写从流中读取的自己的Iterator这一点,但我不确定这是如何工作的。 题 如何根据原始Stream的内容将Stream转换为Stream of Stream ,而不是首先将完整结果存储为List of Lists 。

拖放JDK1.6和JDK1.7之间的差异

有没有人知道JDK1.6和JDK1.7之间的拖放行为的差异? 将URL从浏览器拖放到需要支持JDK1.5,JDK1.6和JDK1.7的应用程序时,我遇到了不同(如下图所示)。 我现在想知道是否存在其他差异以及是否在某处记录了这些差异。 我遇到的不同行为是通过单击并拖动URL到Java应用程序来拖放来自浏览器(而不是来自地址栏但来自页面)的URL。 在JDK1.6上,Transferable不支持DataFlavor.javaFileListFlavor ,而且它支持JDK1.7(尽管在请求传输数据时会得到一个空列表)。 以下代码说明了该问题。 它打开一个JFrame ,您可以在其上拖放像http://www.google.com这样的URL,并打印出它是否使用文件列表风格或URI列表风格 import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.TransferHandler; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.io.File; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.List; public class DragAndDropTester { private static DataFlavor URI_LIST_FLAVOR = null; static { try { URI_LIST_FLAVOR = new DataFlavor( […]

什么布局接受百分比而不是摆动中的值?

我需要根据他们所需的可视空间百分比来创建框架内容。 例如,面板20%,面板2面板180%。 这种布局管理有哪些布局?

Apache Maven Assembly Plugin不支持OSGi捆绑包

我有一个Maven OSGi多模块项目。 当OSGi从各个项目模块中挑选模块jar时,该项目运行良好。 (见下文1.1.B) 。 但是,使用第二种方法时,每当我尝试使用maven-assembly-plugin将bundle存放到中央文件夹(D:/ parent / provider / target / modules)时, bundle.getRegisteredServices() (下面的视图1.1.A)都会返回null。 版本:2.6 : framework.getBundleContext().installBundle(“file:D:/parent/provider/target/modules/OSGiDmHelloWorldProvider-1.0.jar”); framework.getBundleContext().installBundle(“file:D:/parent/provider/target/modules/OSGiDmHelloWorldConsumer-1.0.jar”); 使用第二种方法查看下面的1.1.C以获得控制台输出。 1.1.A if (bundle.getRegisteredServices() != null) { for (ServiceReference serviceReference : bundle.getRegisteredServices()) System.out.println(“\tRegistered service: ” + serviceReference); } 为什么我不能用第二种方法访问捆绑包? GitHub上 我在GitHub上有一个SSCCE。 运行主课程将显示我的困境。 谢谢大家。 1.1.B package main; import java.net.URISyntaxException; import java.net.URL; import java.util.HashMap; import java.util.Map; import java.util.ServiceLoader; […]

Android:将方法关联到智能手机的主页按钮

如何将方法与智能手机的主页按钮相关联? 我想检查这个botton我的Android应用程序做了一个特定的方法。 我读到要禁用主页按钮有方法: getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 但它对我没用。 我怎么解决这个问题?

如何在GlassFish 2上保护网络服务?

我们在GlassFish 2服务器上部署了一些不透明的EJB(EJB3),它们通过@Webmethod注释将它们的一些方法公开为webservices。 现在我们想要保护这些Web服务方法,以便只有经过身份validation的客户端才能调用它。 实现这一目标的好方法是什么?

从里面的Class中找到一个jar的路径?

插件xyz应该在Java项目之上运行并生成一些Java代码。 这段代码需要在构建和运行时在插件的jar中提供的类。 因此,插件的jar(或安装目录)应该出现在构建类路径中。 一个插件如何找到它自己的jar /安装目录的确切路径,或者,就此而言,以便携方式找到一些相关插件jar的路径? 背景是我想制作一个用户可以运行的向导来启用项目的xyz特性。 应为用户提供有意义的默认值,以便在何处查找所需的运行时function,并将给定的库添加到构建路径中。