小编Pau*_*lor的帖子

在指定unicode文字的java代码中获取空字符文字错误

为什么这个代码

 public class Apostrophier
{
    public static String replace(String s)
    {
        return s.replace('\u0092','\u0027');
    }
}
Run Code Online (Sandbox Code Playgroud)

'空字符文字'

当我尝试编译?

java unicode unicode-literals

7
推荐指数
2
解决办法
2837
查看次数

如何将BufferedImage保存为低于特定大小

(使用java 8)鉴于图像用户需要能够以像素为单位指定最小/最大图像大小,并且还需要以kbs为单位指定已保存图像的最大大小,图像将保存为jpg.

所以我通过调整缓冲图像的大小来完成第一个工作:

public static BufferedImage resizeUsingImageIO(Image srcImage, int size)
    {
        int w = srcImage.getWidth(null);
        int h = srcImage.getHeight(null);

        // Determine the scaling required to get desired result.
        float scaleW = (float) size / (float) w;
        float scaleH = (float) size / (float) h;

        MainWindow.logger.finest("Image Resizing to size:" + size + " w:" + w + ":h:" + h + ":scaleW:" + scaleW + ":scaleH" + scaleH);

        //Create an image buffer in which to paint on, create as an opaque …
Run Code Online (Sandbox Code Playgroud)

java bufferedimage java-2d java-8

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

如何在代码中禁用junit测试的Java断言

如何在代码中为junit测试禁用java断言(不是junit assert)

我编写了一个junit测试,但是当我运行它时它没有按预期失败,因为断言已启用,而它们不在生产中.

有没有办法在代码中禁用断言,以便它在IDE中运行时以及作为Maven的一部分构建时按预期工作

java junit assert

7
推荐指数
2
解决办法
3893
查看次数

使用Amazon S3和Cloudfront智能缓存webapges

我有一个网站(在Elastic Beanstalk上的Tomcat中运行),可以生成艺术家唱片(一个艺术家的单页).这可能是资源密集型的,因此艺术家页面在一个月内不会发生变化,因此我在其前面放置了CloudFront Distribution.

我认为这意味着我的服务器不会再多次提供艺术家请求,但这并不是那么好.这篇文章解释了每个边缘位置(欧洲,美国等)在第一次查找资源时都会遇到错误,并且在云端缓存中保留了多少资源,因此可以删除它们.

所以为了解决这个问题,我已经通过服务器代码更改了在S3中的存储桶中存储网页的副本并在请求进入时首先检查这一点,因此如果艺术家页面已经存在于S3中,那么服务器将检索它并返回其内容作为网页.这大大减少了处理,因为它只为特定艺术家构建一次网页.

然而:

  1. 请求仍然必须转到服务器以检查艺术家页面是否存在.
  2. 如果艺术家页面存在,那么首先将网页(并且它们有时可以大到20mb)最先下载到服务器,然后服务器返回页面.

所以我想知道我是否可以改进这一点 - 我知道你可以构建一个S3存储桶作为重定向到另一个网站.是否有每页的方式我可以让艺术家请求转到S3存储桶,然后让它返回页面,如果它存在或调用服务器,如果它没有?

或者我可以让服务器检查页面是否存在然后重定向到S3页面而不是先将页面下载到服务器?

java amazon-s3 amazon-web-services amazon-cloudfront

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

我可以将Google Image搜索嵌入到我的html5网页中吗?

我希望能够做到的是用户点击我的网站上的按钮(实际上是一个在用户计算机上本地运行的webapp,因此每个实例都是单个用户),它启动了一个带有各种参数的Google图像搜索并显示结果我的html页面的一部分.

这是因为他们可以选择一个图像并将其拖放到我的网页上的dropzone中.这部分有效,但目前搜索是在新标签中打开,所以从该标签拖到我的标签有点痛苦.

嵌入作为iframe不起作用,Google不允许这样做.

所以

a>是否有Google认可的API我可以用来执行Google搜索图片并在我的页面中显示.

b>我可以从我的服务器发送发送网址请求(我喜欢curl/wget然后屏幕抓取结果并显示在网页上)

html5 google-search

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

如何配置简单的 Java fontconfig.properties 文件以在 Linux 上使用

我在自定义 linux 硬件上使用自定义 Java 11 运行时,Java 运行时不是我构建的。但是我有一个问题,我的应用程序需要访问字体并且运行时没有配置任何字体,所以我得到了这个堆栈跟踪

Exception in thread "main" java.lang.InternalError: java.lang.reflect.InvocationTargetException
        at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:86)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
        at java.desktop/java.awt.Font.getFont2D(Font.java:497)
        at java.desktop/java.awt.Font.getFamily(Font.java:1410)
        at java.desktop/java.awt.Font.getFamily_NoClientCode(Font.java:1384)
        at java.desktop/java.awt.Font.getFamily(Font.java:1376)
        at java.desktop/java.awt.Font.toString(Font.java:1869)
        at java.base/java.lang.String.valueOf(String.java:2951)
        at java.base/java.io.PrintStream.println(PrintStream.java:897)
        at Fonts.main(Fonts.java:7)
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)
        ... 10 more
Caused by: java.lang.NullPointerException
        at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
        at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
        at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
        at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
        at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:367)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:312)
        at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
        at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56) 
Run Code Online (Sandbox Code Playgroud)

我可以提供一些字体,并且我已经计算出我需要创建一个fontconfig.properties并将我放入 Java runtimes …

java fonts openjdk-11

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

如何安全地识别 mp4 是纯音频文件还是视频文件

给定一组 mp4 文件,我只想识别音频文件而不是视频文件。以前,我通过确保只有一个 trak 原子来做到这一点,并且该轨道原子包含一个trak.mdia.minf.smhd原子,但后来发现这排除了一些有效的音频文件。

所以现在我检查文件中找到的每个 trak 原子,并且只有在我们trak.mdia.minf.vmhd在任何原子中找到原子或者我们没有找到至少一个trak.mdia.minf.smhd原子时才拒绝。但我确信这并不是无懈可击的,因为一定有不使用原子的视频格式vmhd

解决这个问题的最佳方法是什么?

audio video mp4

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

在Java 7中删除二进制文件的一部分的最佳方法是什么

即我有一个10 MB的文件,我想删除1M到2M的字节,因此生成的文件是9mb,从文件中以2m字节开始的数据现在从1M开始

我使用Java 7,因此可以制作NIO,文件大小通常为10MB,并且经常通过网络访问,所以我正在寻找一个表现良好的优雅解决方案.

我知道BteBuffer.allocateDirect()和File.getChannel(),但我很难解决,如果有办法做我想要的,不涉及必须从文件通道写入8MB临时缓冲区只是为了写回来在不同的地方存档,或者如果使用allocateDirect()这实际上是可以的

java nio

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

我在html中使用什么而不是两个多选框,因此适用于Phone/Ipad

在我的HTML UI我希望用户能够选择多个国家,因为有太多的国家允许显示我发起的HTML页面,以便它有两个列出了完整的清单:第二个列表刚刚那些已经选中,第一个包含所有国家/地区(已经选择并添加到第二个列表除外),使用"添加和删除"按钮在这两个列表之间进行用户转移

我通过设置size属性为每个选择框显示15行.

<tr>
    <td>
        <select id="preferred_countries_all" size="15" style="width:200px" multiple="multiple">
            <option value=" AF">Afghanistan</option>
            <option value="AX">Åland Islands</option>
            <option value="AL">Albania</option>
            <option value="DZ">Algeria</option>
            <option value="AS">American Samoa</option>
            <option value="AD">Andorra</option>
            <option value="AO">Angola</option>
            <option value="AI">Anguilla</option>
            <option value="AQ">Antarctica</option>
            <option value="AG">Antigua and Barbuda</option>
            <option value="AR">Argentina</option>
            <option value="AM">Armenia</option>
            <option value="AW">Aruba</option>
            <option value="AU">Australia</option>
            <option value="AT">Austria</option>
            <option value="AZ">Azerbaijan</option>
            <option value="BS">Bahamas</option>
            <option value="BH">Bahrain</option>..
        </select>
    </td>
    <td>
        <button style="width:100px" type="button" id="preferred_countries_add" onclick="add_preferred_countries();">
        Add
        </button>
        <br>
        <button style="width:100px" type="button" id="preferred_countries_remove" onclick="remove_preferred_countries();">
        Remove
        </button>
    </td>
    <td>
        <select id="preferred_countries_selected" name="preferred_countries_selected" size="15" style="width:200px" multiple="multiple">
        </select>
    </td>
</tr> …
Run Code Online (Sandbox Code Playgroud)

html select android ipad

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

何时/如何以编程方式设置Hibernate大小使用的Ehcache

我通过添加以下内容在Hibernate 4.3.11中启用了二级缓存:

 config.setProperty("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory");
 config.setProperty("hibernate.cache.use_second_level_cache", "true");
Run Code Online (Sandbox Code Playgroud)

到我的Hibernate配置.

这到我的pom.xml(不确定pom定义是否有必要这个尴尬)

<dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-ehcache</artifactId>
      <version>4.3.11.Final</version>
      <exclusions>
          <exclusion>
              <groupId>net.sf.ehcache</groupId>
              <artifactId>ehcache-core</artifactId>
          </exclusion>
      </exclusions>
      </dependency>
      <dependency>
          <groupId>net.sf.ehcache</groupId>
          <artifactId>ehcache</artifactId>
          <version>2.7.0</version>
      </dependency>
Run Code Online (Sandbox Code Playgroud)

这到我要缓存的类

@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
Run Code Online (Sandbox Code Playgroud)

但是如何在创建数据库时在代码中配置缓存大小,对我来说使用Xml文件是不实际的,这只会增加构建过程的复杂性,我更喜欢在代码中执行.

从Hibernate创建数据库后更新,我发现已经创建了缓存

CacheManager.create();
String[] cacheNames = CacheManager.getInstance().getCacheNames();
for(String cacheName:cacheNames)
{
    MainWindow.logger.severe("CacheName:"+cacheName);
    Cache cache = CacheManager.getInstance().getCache(cacheName);
    cache.getCacheConfiguration().setMaxEntriesInCache(1000);
    cache.getCacheConfiguration().setLogging(true);
}
Run Code Online (Sandbox Code Playgroud)

但是我怎么能影响它们的创建方式,或者像我所做的那样修改值就足以更新了.当我运行时,我看到没有调试outout或任何表明正在使用缓存的东西.

hibernate ehcache hibernate-4.x

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