小编rog*_*ack的帖子

在java中获取字符串大小(没有可用的Graphics对象)

我正在尝试编写需要使用Java中的Graphics2D类绘制许多字符串的应用程序.我需要获取每个String对象的大小(以计算每个字符串的确切位置).在调用paint()方法之前应该完成很多字符串,并且在程序开始时只执行一次(所以我还没有Graphics2D对象).我知道有一个方法Font.getStringBounds()但它需要一个FontRenderContext对象作为参数.

当我试图创建自己的对象时:

FontRenderContext frc = new FontRenderContext(MyFont.getTransform(), true, true)
Run Code Online (Sandbox Code Playgroud)

然后获取字符串边界我总是得到不同的大小,而不是我在paint()方法中使用Graphics2D.getFontRenderContext()方法获得FontRenderContext.差异不大(约1E-3),但我想知道为什么会有任何区别?

但是,有没有更好更安全的方法来获取字符串的大小?

Thnx提前提供任何帮助!

java string graphics2d bounds

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

在jetty启动时抛出奇怪的java.lang.ArrayIndexOutOfBoundsException

每当我部署jetty应用程序时,我都遇到了这个问题.看起来有些人jar或班级被打破了.

  • 同事编译完全相同的代码,没有遇到问题.即使部署到同一台计算机.(我们使用gitmaven)
  • 删除本地maven存储库~/.m2和重建没有帮助.
  • 可以在本地运行相同的码头应用程序没有任何问题
  • 我最初的怀疑是有些人jar被打破了.试过jar tvf $every_jar,没有找到任何东西.

任何想法如何调试这个?看起来真的很神秘,我怀疑是有些文件被破坏了.

Stack trace:
2014-10-21 13:29:25.123:WARN:oejw.WebAppContext:Failed startup of context o.e.j.w.WebAppContext{/,file:/XYZ/},/XYZ/webapps/root
javax.servlet.ServletException: jersey-serlvet
        at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:553)
        at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:344)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:791)
        at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265)
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1242)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:39)
        at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186)
        at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:494)
        at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:141)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:145)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:56)
        at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:615)
        at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:540)
        at org.eclipse.jetty.util.Scanner.scan(Scanner.java:403)
        at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:337)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:121)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:555)
        at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:230)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) …
Run Code Online (Sandbox Code Playgroud)

java jetty maven-jetty-plugin

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

无法在macOS High Sierra上构建和安装Valgrind

我无法在macOS High Sierra上安装Valgrind.它无法通过brew.我试过3.10.之后make install,我收到这条消息:

configure: error: Valgrind works on Darwin 10.x, 11.x, 12.x, 13.x and 14.x (Mac OS X 10.6/7/8/9/10)
Run Code Online (Sandbox Code Playgroud)

Homebrew说:

valgrind: This formula either does not compile or function as expected on macOS
versions newer than Sierra due to an upstream incompatibility.
Error: An unsatisfied requirement failed this build.
Run Code Online (Sandbox Code Playgroud)

macos valgrind macos-high-sierra

12
推荐指数
2
解决办法
6578
查看次数

在开发环境中在tomcat中重新加载webapp的简单快捷方法是什么?

我在Windows上运行Tomcat 6.我有"监控Tomcat"系统托盘图标,它允许我启动和关闭Tomcat,但还有另一个小工具,让我可以在我更改类文件时轻松重新加载我的Web应用程序吗?我知道Tomcat附带的"经理"应用程序有一个重新部署选项,但只是想知道是否有一个本机应用程序可以更快更好地做到这一点?

java tomcat

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


如何解析/解压缩/解压缩由Nexus生成的Maven存储库索引

我已经从http://mirrors.ibiblio.org/pub/mirrors/maven2/dot-index/nexus-maven-repository-index.gz下载了为Maven Central生成的索引.

我想列出这些索引文件中的工件信息(例如groupId,artifactId,version).我已经读过,有一个高级API.似乎我必须使用以下maven依赖项.但是,我不知道使用什么入口点(哪个类?)以及如何使用它来访问这些文件:

<dependency>
    <groupId>org.sonatype.nexus</groupId>
    <artifactId>nexus-indexer</artifactId>
    <version>3.0.4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

java lucene nexus maven maven-indexer

11
推荐指数
2
解决办法
4558
查看次数

泽西没有WebApplication提供商在添加jersey-*依赖时出现

我有一个简单的Spring&Jersey应用程序,它非常适合通过简单的资源消费请求.但是,我想返回一个JSON响应 - 包含一个对象的简单JSON序列化.为此,我添加了一个maven依赖项jersey-json.但是,只要我添加此依赖项,我就会在服务器启动时收到此错误:

com.sun.jersey.api.container.ContainerException: No WebApplication provider is present  at      
     com.sun.jersey.spi.container.WebApplicationFactory.createWebApplication(WebApplicationFactory.java:69) at
     com.sun.jersey.spi.container.servlet.ServletContainer.create(ServletContainer.java:391)
Run Code Online (Sandbox Code Playgroud)

我并不完全清楚提供商到底是什么,但我很确定应该找到一个默认提供商.

为了完整性,这是我的资源:

@Path("/scan")
@Resource
@Component
public class ScanResource {
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/{barcode}")
    public List<Scan> getScansForBarcode(@PathParam("barcode") Long barcode){
        ..snip..
        return results;
    }
}
Run Code Online (Sandbox Code Playgroud)

Scan对象是一个简单的Entity Bean对象.

mvn依赖是:

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.11</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么我会得到No WebApplication provider is present例外?有关如何解决它的任何想法?

谢谢

spring json jersey

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

如何在休眠中启用批量插入?

使用hibernate,当我尝试启用批量插入时

  <property name="jdbc.batch_size">50</property>
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

 [...] cfg.SettingsFactory INFO  - JDBC batch updates for versioned data: disabled
 [...] cfg.SettingsFactory INFO  - Order SQL inserts for batching: disabled
Run Code Online (Sandbox Code Playgroud)

然后这个:

 [...] jdbc.AbstractBatcher DEBUG - Executing batch size: 1
Run Code Online (Sandbox Code Playgroud)

从来没有超过batch size: 1基本.

我错过了一个设置吗?

java database performance hibernate batch-processing

11
推荐指数
2
解决办法
3万
查看次数

PHP放弃了SQlite?

从PHP 5.0开始,默认启用SQLite扩展.从PHP 5.4开始,SQLite扩展仅可通过PECL获得.

好吧,我在PHP编程方面相对较新,我想知道官方PHP网站引用的信息是什么意思?

我编写了一些运行SQlite而不是MySQL数据库的应用程序,如果它将从未来版本的PHP中弃用,我会非常担心.

它是什么意思"从现在开始,只通过PECL"?我知道SQlite 可用,但这并不意味着:

  1. PHP团队将至少关注PHP/SQlite集成的未来发展

  2. 我们可以期待网络托管服务提供商将错过安装SQlite扩展,因为它不再是默认的?

当PHP"扔掉"PECL的扩展时,有人有经验吗?提前致谢.

php sqlite pecl

10
推荐指数
1
解决办法
7216
查看次数

HttpURLConnection超时默认值

我似乎遇到了一些tcp请求有时被"卡住"的问题,比如它正在等待一些响应,但连接已被"切断",因此响应将永远不会到来.HttpURLConnection的预期行为是否具有默认超时?是否设置了合理的默认设置,以便我无法默认进入这种奇怪的"挂起"状态?

java httpurlconnection

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