小编wok*_*oky的帖子

从linux开始收缩(截断)文件

是否有可能在Linux(和/或其他Unix)上"缩小"文件?我想将它用于持久队列(没有适合我需要的现有实现).从文件的结尾我猜可以使用truncate().

truncate file shrink

6
推荐指数
1
解决办法
1982
查看次数

在同一个包中对sun.*类进行子类化会产生IllegalAccessError

前言:

  1. 我要告诉你的是错误,我很清楚我做这种愚蠢的事情打破封装有多糟糕.
  2. 我不是要解决任何更普遍的I/O问题.这只是一个实验.

我正在尝试sun.nio.ch.SourceChannelImpl使用JDK中存在的包私有构造函数的包私有类子类(在rt.jar中),所以我必须在sun.nio.ch包中创建它.

这是我的子类:

package sun.nio.ch;
import java.io.FileDescriptor;
import java.nio.channels.spi.SelectorProvider;
class MySourceChannel extends SourceChannelImpl {
  public MySourceChannel(SelectorProvider sp, FileDescriptor fd) {
    super(sp, fd);
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的简单测试:

package sun.nio.ch;
import java.io.FileDescriptor;
public class Main {
  public static void main(String[] args) {
    new MySourceChannel(null, FileDescriptor.in);
  }
}
Run Code Online (Sandbox Code Playgroud)

而这是失败:

Exception in thread "main" java.lang.IllegalAccessError: class sun.nio.ch.MySourceChannel cannot access its superclass sun.nio.ch.SourceChannelImpl
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native …
Run Code Online (Sandbox Code Playgroud)

java inheritance visibility sun core

6
推荐指数
1
解决办法
481
查看次数

PCRE-偏移向量,为3的倍数?

我正在使用PCRE,但我不明白为什么偏移量矢量必须是3的倍数。这是来自pcredemo.c(rc是的结果pcre_exec()):

/* The output vector wasn't big enough */

if (rc == 0) {
    rc = OVECCOUNT / 3;
    printf("ovector only has room for %d captured substrings\n", rc - 1);
}

/* Show substrings stored in the output vector by number. Obviously, in a real
 * application you might want to do things other than print them. */

for (i = 0; i < rc; i++) {
    char *substring_start = subject + ovector[2 * i];
    int …
Run Code Online (Sandbox Code Playgroud)

c regex pcre

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

嵌入式tomcat 7中的JNDI jdbc数据源

我有一个带有数据库数据源的Web应用程序,在META-INF/context.xml中定义:

<Context>
    <Resource
        name="jdbc/mkddb"
        auth="Container"
        type="javax.sql.DataSource"
        maxActive="10"
        maxIdle="5"
        maxWait="10000"
        driverClassName="org.postgresql.Driver"
        username="woky"
        password="XYZ"
        url="jdbc:postgresql://[::1]:5433/mkddb" />
</Context>
Run Code Online (Sandbox Code Playgroud)

这是我的peristence.xml:

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">
    <persistence-unit name="myJpaUnit" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <non-jta-data-source>java:comp/env/jdbc/mkddb</non-jta-data-source>
        <class>mkd.model.User</class>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
        </properties>
    </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

这就是我在测试代码中运行Tomcat(7.0.8)的方法:

Tomcat tomcat = new Tomcat();
tomcat.addWebapp("", "ROOT");
tomcat.enableNaming();
tomcat.start();
System.in.read();
tomcat.stop();
Run Code Online (Sandbox Code Playgroud)

我的工作区中有一个tomcat.8080目录,其中包含webapps和工作目录.ROOT指向src/main/webapp(所有Java代码都在类路径中).

问题是,当我运行此代码时,我得到以下异常:

javax.persistence.PersistenceException: [PersistenceUnit: myJpaUnit] Unable to build EntityManagerFactory
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:892)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
    at com.google.inject.persist.jpa.JpaPersistService.start(JpaPersistService.java:94)
    at com.google.inject.persist.PersistFilter.init(PersistFilter.java:77)
    at com.google.inject.servlet.FilterDefinition.init(FilterDefinition.java:114)
    at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:98)
    at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:172)
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)
    at …
Run Code Online (Sandbox Code Playgroud)

tomcat jndi datasource jdbc

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

Scala本地回归?

我刚刚发现return以下闭包中的s将从函数返回findPackage

def findPackage(name: String, suffix: Option[String] = None): Path = {
    logger.debug("Looking for package {} with suffix {}", name, suffix)
    val path: Path = using(Files.newDirectoryStream(appDir)) {dirs =>
        for (val path <- dirs) {
            val matcher = packagePattern.matcher(path.getFileName.toString)
            if (matcher.matches() && matcher.group(1).equals(name))
                if (suffix.isDefined) {
                    if (matcher.group(2) != null && matcher.group(2).equals(suffix.get))
                        return path
                } else
                    return path
        }
        throw new PackageNotFoundException(this, name, suffix)
    }
    logger.debug("Found package is {}", path)
    path
}
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式做一个本地回报吗?谢谢.

controls closures scala

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

Java SAXParser - 保持InputStream打开

BufferedInputStream想从中解析XML,SAXParser然后再重复使用它(例如.mark(int)&reset()).但是这个流在parse()方法中是关闭的.有可能以某种方式告诉SAXParser它保持开放吗?最后一种方法是使用不可关闭的流包装此流.

谢谢.

java sax stream

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

在Scala中将静态内部接口实现为匿名类

我想在Scala中使用NIO.2特性(类在java.nio.file中):

在Java中我会这样做:

Files.newDirectoryStream(Paths.get("/tmp"), new DirectoryStream.Filter<Path>() {
  @Override
  public boolean accept(Path entry) throws IOException {
    return false;
  }
});
Run Code Online (Sandbox Code Playgroud)

我怎么能在Scala中做同样的事情?该Fitler是内部的静态接口DirectoryStream界面.

谢谢.

编辑:如果您想建议我另一个列出文件的库/方法,请不要回复.我主要对主要问题感兴趣.

static scala nested interface java-7

0
推荐指数
1
解决办法
811
查看次数

标签 统计

java ×2

scala ×2

c ×1

closures ×1

controls ×1

core ×1

datasource ×1

file ×1

inheritance ×1

interface ×1

java-7 ×1

jdbc ×1

jndi ×1

nested ×1

pcre ×1

regex ×1

sax ×1

shrink ×1

static ×1

stream ×1

sun ×1

tomcat ×1

truncate ×1

visibility ×1