为什么这个代码
public class Apostrophier
{
public static String replace(String s)
{
return s.replace('\u0092','\u0027');
}
}
Run Code Online (Sandbox Code Playgroud)
给
'空字符文字'
当我尝试编译?
(使用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) 如何在代码中为junit测试禁用java断言(不是junit assert)
我编写了一个junit测试,但是当我运行它时它没有按预期失败,因为断言已启用,而它们不在生产中.
有没有办法在代码中禁用断言,以便它在IDE中运行时以及作为Maven的一部分构建时按预期工作
我有一个网站(在Elastic Beanstalk上的Tomcat中运行),可以生成艺术家唱片(一个艺术家的单页).这可能是资源密集型的,因此艺术家页面在一个月内不会发生变化,因此我在其前面放置了CloudFront Distribution.
我认为这意味着我的服务器不会再多次提供艺术家请求,但这并不是那么好.这篇文章解释了每个边缘位置(欧洲,美国等)在第一次查找资源时都会遇到错误,并且在云端缓存中保留了多少资源,因此可以删除它们.
所以为了解决这个问题,我已经通过服务器代码更改了在S3中的存储桶中存储网页的副本并在请求进入时首先检查这一点,因此如果艺术家页面已经存在于S3中,那么服务器将检索它并返回其内容作为网页.这大大减少了处理,因为它只为特定艺术家构建一次网页.
然而:
所以我想知道我是否可以改进这一点 - 我知道你可以构建一个S3存储桶作为重定向到另一个网站.是否有每页的方式我可以让艺术家请求转到S3存储桶,然后让它返回页面,如果它存在或调用服务器,如果它没有?
或者我可以让服务器检查页面是否存在然后重定向到S3页面而不是先将页面下载到服务器?
我希望能够做到的是用户点击我的网站上的按钮(实际上是一个在用户计算机上本地运行的webapp,因此每个实例都是单个用户),它启动了一个带有各种参数的Google图像搜索并显示结果我的html页面的一部分.
这是因为他们可以选择一个图像并将其拖放到我的网页上的dropzone中.这部分有效,但目前搜索是在新标签中打开,所以从该标签拖到我的标签有点痛苦.
嵌入作为iframe不起作用,Google不允许这样做.
所以
a>是否有Google认可的API我可以用来执行Google搜索图片并在我的页面中显示.
b>我可以从我的服务器发送发送网址请求(我喜欢curl/wget然后屏幕抓取结果并显示在网页上)
我在自定义 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 …
给定一组 mp4 文件,我只想识别音频文件而不是视频文件。以前,我通过确保只有一个 trak 原子来做到这一点,并且该轨道原子包含一个trak.mdia.minf.smhd原子,但后来发现这排除了一些有效的音频文件。
所以现在我检查文件中找到的每个 trak 原子,并且只有在我们trak.mdia.minf.vmhd在任何原子中找到原子或者我们没有找到至少一个trak.mdia.minf.smhd原子时才拒绝。但我确信这并不是无懈可击的,因为一定有不使用原子的视频格式vmhd。
解决这个问题的最佳方法是什么?
即我有一个10 MB的文件,我想删除1M到2M的字节,因此生成的文件是9mb,从文件中以2m字节开始的数据现在从1M开始
我使用Java 7,因此可以制作NIO,文件大小通常为10MB,并且经常通过网络访问,所以我正在寻找一个表现良好的优雅解决方案.
我知道BteBuffer.allocateDirect()和File.getChannel(),但我很难解决,如果有办法做我想要的,不涉及必须从文件通道写入8MB临时缓冲区只是为了写回来在不同的地方存档,或者如果使用allocateDirect()这实际上是可以的
在我的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) 我通过添加以下内容在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或任何表明正在使用缓存的东西.