To get a colored vi editor create a .vimrc in your root folder with the following content:
syntax on
colorscheme desert
Technical tweaks, helpers, contradictions and a lot of blood sweet and tears are inside this blog.
Search This Blog
Thursday, October 29, 2015
Wednesday, October 28, 2015
Using sublime in MacOSX or Linux terminal
To use SublimeText editor within your console just create a link like
and from now on you could use Sublime in your console like this
ln -fs /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/sublime
and from now on you could use Sublime in your console like this
andre ~$ sublime .bashrc
Wednesday, October 21, 2015
set file.encoding in a JVM
To set the default file.encoding in a JVM you could set it in the JVM startup as -Dfile.encoding=UTF-8 or in JAVA_TOOLS_OPTIONS with the same part. But if you want to set it programmatically after the JVM already started?
A System.setProperty("file.encoding", "UTF-16"); will only set the file.encoding property. All other classes which rely on the defaultCharset, like all Streams and Buffers won't recognize that change. Here is a Junit Test, which shows you how to reset the Charset.defaultCharset field:
package de.kambrium;
import java.lang.reflect.Field;
import java.nio.charset.Charset;
import org.junit.Before;
import org.junit.Test;
public class CharsetTest {
@Before
public void setUp() throws Exception {
}
@Test
public void test() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
dump("Actual system config");
System.setProperty("file.encoding", "UTF-16");
dump("Config after System.setProperty(\"file.encoding\", \"UTF-16\")");
Field cs = Charset.class.getDeclaredField("defaultCharset");
cs.setAccessible(true);
cs.set(null, null);
dump("Config after manipulating defatulCharset field");
}
private void dump(String msg) {
System.out.println(msg);
System.out.println("****************************************************************");
System.out.println("file.encoding = " + System.getProperty("file.encoding"));
System.out.println("defaultCharset = " + Charset.defaultCharset());
System.out.println("****************************************************************");
System.out.println("");
}
}
A System.setProperty("file.encoding", "UTF-16"); will only set the file.encoding property. All other classes which rely on the defaultCharset, like all Streams and Buffers won't recognize that change. Here is a Junit Test, which shows you how to reset the Charset.defaultCharset field:
package de.kambrium;
import java.lang.reflect.Field;
import java.nio.charset.Charset;
import org.junit.Before;
import org.junit.Test;
public class CharsetTest {
@Before
public void setUp() throws Exception {
}
@Test
public void test() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
dump("Actual system config");
System.setProperty("file.encoding", "UTF-16");
dump("Config after System.setProperty(\"file.encoding\", \"UTF-16\")");
Field cs = Charset.class.getDeclaredField("defaultCharset");
cs.setAccessible(true);
cs.set(null, null);
dump("Config after manipulating defatulCharset field");
}
private void dump(String msg) {
System.out.println(msg);
System.out.println("****************************************************************");
System.out.println("file.encoding = " + System.getProperty("file.encoding"));
System.out.println("defaultCharset = " + Charset.defaultCharset());
System.out.println("****************************************************************");
System.out.println("");
}
}
Output will look like this
Actual system config
****************************************************************
file.encoding = UTF-8
defaultCharset = UTF-8
****************************************************************
Config after System.setProperty("file.encoding", "UTF-16")
****************************************************************
file.encoding = UTF-16
defaultCharset = UTF-8
****************************************************************
Config after manipulating defatulCharset field
****************************************************************
file.encoding = UTF-16
defaultCharset = UTF-16
****************************************************************
JUnit in eclipse
Running JUnit in eclipse shouldn't be a problem. I run into a
java.lang.NoSuchMethodError: org.junit.runner.Description.getClassName()Ljava/lang/String;
while using a bunch of projects in eclipse. Reason for that error was a project, which has an older version of Junit in his build path. Removing the old ref solves the problem.
java.lang.NoSuchMethodError: org.junit.runner.Description.getClassName()Ljava/lang/String;
while using a bunch of projects in eclipse. Reason for that error was a project, which has an older version of Junit in his build path. Removing the old ref solves the problem.
Subscribe to:
Posts (Atom)