我正在运行Windows 7 64位.在我以前使用Java 6安装Java 7(PS3媒体服务器的一部分)之后,我的Eclipse(Indigo Service Release 2,Build id:20120216-1857)CVS停止工作到VPN上的服务器.我使用Cisco AnyConnect VPN客户端版本2.5.2019进行连接.每当我尝试连接到存储库时,我得到的错误如下:
Could not connect to :extssh:username@example.com:/cvsroot/username/project: CVS communication error: org.eclipse.team.internal.ccvs.ssh2.CVSSSH2ServerConnection$SSH2IOException: Permission denied: connect
Permission denied: connect
Run Code Online (Sandbox Code Playgroud)
我可以通过强制Eclipse在Java 6 JVM下运行来解决它.这不是防火墙问题,因为我关闭了Windows防火墙,并且Wireshark也没有显示DNS查询之外的流量.
我的JRE(Java 6和Java 7)都是32位版本; 他们的路径分别是
C:\Program Files (x86)\Java\jre6
C:\Program Files (x86)\Java\jre7
Run Code Online (Sandbox Code Playgroud) 希望能够将JDK 7与CloudBees Run @ cloud一起使用.CloudBees Jenkins已经支持JDK 7.
不要认为现在可能,想要ETA ......?
根据Oracle的在线文档,JnlpDownloadServlet仍然是Java 7的一部分:http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/downloadservletguide.html
但我刚刚安装了JDK 1.7.0,jnlp-servlet.jar和jardiff.jar都没有出现在我家的任何地方,至少在Windows上.我在目录中的每个jar上搜索(使用优秀的ack命令行实用程序),但它们都不包含JnlpDownloadServlet.
从将项目升级到Java 7后,生成的文档现在已经破坏了格式.
如何解决这个问题?
我正在编写一个代码我用java nio api创建一个目录,我的代码片段是
Path target = Paths.get(""+folder_path+xx[0]);
Set<PosixFilePermission> perms = null;
if(xx[2].toLowerCase().equals("read"))
perms =PosixFilePermissions.fromString("r--------");
if(xx[2].toLowerCase().equals("read/write"))
{
perms =PosixFilePermissions.fromString("rw-------");
}
FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);
Files.createDirectory(target, attr);
Run Code Online (Sandbox Code Playgroud)
但这是一个错误
java.nio.file.FileAlreadyExistsException: /home/ritesh/Desktop/userA
我知道的原因是因为一个目录已经具有相同的名称,但我想用我的代码目录生成的目录覆盖userA目录如何完成这个?
我已经阅读了关于如何检查字符串是否在Java中实现的答案,但我不理解以下结果:
String x = args[0]; // args[0] = "abc";
String a = "a";
String y = a + "bc";
System.out.println(y.intern() == y); // true
Run Code Online (Sandbox Code Playgroud)
但是如果我声明一个字符串文字:
String x = "abc";
String a = "a";
String y = a + "bc";
System.out.println(y.intern() == y); // false
Run Code Online (Sandbox Code Playgroud)
此外,没有任何字符串文字,args[0]似乎直接实习:
// String x = "abc";
String y = args[0];
System.out.println(y.intern() == y); // true (???)
// false if the first line is uncommented
Run Code Online (Sandbox Code Playgroud)
为什么y.intern() == y更改取决于是否x是文字,即使是在使用命令行参数时的示例?
我知道 …
Java 7 定义了该选项,但我仍然无法理解它的用处。
public static void main(final String... args)
throws IOException
{
final long offset = 1L << 31;
final RandomAccessFile f = new RandomAccessFile("/tmp/foo", "rw");
f.seek(offset);
f.writeInt(2);
f.close();
}
Run Code Online (Sandbox Code Playgroud)
当我查询文件“ shell wise”时,我得到了预期的结果:
$ cd /tmp
$ stat --format %s foo
2147483652
$ du --block-size=1 foo
4096 foo
Run Code Online (Sandbox Code Playgroud)
也就是说,inode真实地声明该文件的大小接近2 GB,但是由于基础fs的块大小为4k,因此其磁盘使用情况实际上是一个块。好。
但是我不需要Java 7 StandardOpenOption.SPARSE。实际上,如果我使用Java 7 JVM运行此完全相同的代码,则结果不会改变。
现在,转到一些仅Java 7的代码:
public static void main(final String... args)
throws IOException
{
final ByteBuffer buf = ByteBuffer.allocate(4).putInt(2);
buf.rewind();
final OpenOption[] options = {
StandardOpenOption.WRITE, …Run Code Online (Sandbox Code Playgroud) 好的,这里是JLS专家的一个非常好奇的Java 7语言谜题.以下代码不能用javac和Eclipse编译:
package com.example;
public class X {
public static X com = new X();
public void x() {
System.out.println(com.example.X.com);
// cannot find symbol ^^^^^^^
}
}
Run Code Online (Sandbox Code Playgroud)
似乎成员com完全阻止com.*从内部访问包X.然而,这并未得到彻底应用.以下工作,例如:
public void x() {
System.out.println(com.example.X.class);
}
Run Code Online (Sandbox Code Playgroud)
我的问题:
注意,这只是对生成代码中的实际问题的简化,其中com.example.X需要完全限定并且com不能重命名成员.
更新:我认为它实际上可能是类似这样的问题:为什么我不能在Java中"静态导入"一个"等于"方法?
我有一个函数,它选择a的随机元素List并返回它.列表可以并且非常长(数百万个元素),并且此函数每秒被调用数千次,因此效率很重要.
我目前的实现如下:
MyClass getRandomElement(List<MyClass> myClasses) {
return myClasses.get(getRandomNumber(myClasses.size()));
}
Run Code Online (Sandbox Code Playgroud)
此解决方案存在两个问题.
List.get不保证可以参加比赛O(1).LinkedList例如,实现它O(n).size不保证O(1)在所有List实现中运行.第二点不是很有说服力,因为我所知道的所有实现都实现了它O(1).第一点是有问题的.
是否有任何方法可以保证(不是编译/运行时异常)实现O(1).我想把界面改为:
MyClass getRandomElement(ArrayList<MyClass> myClasses)
Run Code Online (Sandbox Code Playgroud)
这太严格了.我希望用户能够使用一个调用此函数ImmutableList.它甚至被推荐.
我可以声明该值是ArrayList或的实例ImmutableList.这将排除任何其他O(1)实现,但我可以忍受它.然而,它是运行时实施而不是编译时执行.我不确定这项检查的运行时开销是多少.
这是最好的做法吗?
我在我的应用程序中使用JDK1.7.
我升级了球衣2.26,现在我收到了错误:
??: Servlet [Jersey Web Application] in web application [/spcsis-1.0] threw load() exception
java.lang.UnsupportedClassVersionError: org/glassfish/jersey/servlet/ServletContainer : Unsupported major.minor version 52.0 (unable to load class org.glassfish.jersey.servlet.ServletContainer)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3129)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1341)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1827)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1146)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1085)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5318)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5610)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Run Code Online (Sandbox Code Playgroud)
我已经将jdk更改为1.8,然后它可以工作,但我必须使用jdk1.7作为我的项目.
有人可以帮我做吗?
java-7 ×10
java ×8
cloudbees ×1
collections ×1
cvs ×1
eclipse ×1
file-io ×1
filesystems ×1
java-io ×1
javadoc ×1
jersey ×1
jersey-2.0 ×1
jls ×1
jnlp ×1
nio ×1
pool ×1
ssh ×1
string ×1
visibility ×1
vpn ×1