从Oracle使用appbundler ant任务(http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html)我可以在创建工作Mac应用程序捆绑JRE7但一些装载本机库之类的资源失败,因为Info.plist接缝中的路径无效.
在我使用的build.xml ant任务中(例如,我的本机库被复制到app-bundle内的Contents/Java文件夹):
a) <option value="-Djava.library.path=Contents/Java/" />
b) <option value="-Djava.library.path=$JAVAROOT/" />
c) <option value="-Djava.library.path=$APP_PACKAGE/Contents/Java/" />
Run Code Online (Sandbox Code Playgroud)
所有结果都是UnsatisfiedLinkError.还找不到一些其他资源,如splash-image:
<option value="-splash:Contents/Java/my-splash.png" />
Run Code Online (Sandbox Code Playgroud)
知道如何在这里正确设置JVMOptions的路径吗?
编辑:Java7 appbundler使用不同于plist的语法,因为Apple的Jar Bundler与jdk6一起提供,例如,没有添加SplashFile的"Java"字典.
我在使用下划线创建最终双精度时出现此错误,以使双精度更具可读性.它是在一种run()方法中宣布的.
public void run() {
final double nanoSeconds = 1_000_000_000.0 / 60.0;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用IntelliJ IDEA 12.
我到了,main.java: error: someId in someStruct is defined in an inaccessible class or interface但我怎么能解决这个问题呢?
我的主要课程:
import subdir.Subclass;
public class main{
...
Subclass.someArrayList.get(i).someString
...
}
Run Code Online (Sandbox Code Playgroud)
我的subdir.Subclass类:
package subdir;
public class Subclass{
public static java.util.ArrayList<someStruct> someArrayList = new java.util.ArrayList<someStruct>(java.util.Arrays.asList(
new someStruct(3, "string", "string"),
new someStruct(4, "string", "string")
));
}
class someStruct
{
public int someId;
public String someString;
public String someString2;
public someStruct(int someId, String someString, String someString2) {
this.someId = someId;
this.someString = someString;
this.someString2 = someString2;
}
}
Run Code Online (Sandbox Code Playgroud) 我试图在命令提示符中运行以下简单代码最近几个小时.仍然无法修复错误.
这里有什么问题.我找不到.
这是代码:
public static void main(String[] args) {
int i;
try {
DataInputStream din = new DataInputStream(System.in);
i = Integer.parseInt(din.readLine());
}
catch(NumberFormatException || IOException exception) {
System.out.println(exception.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud) 我使用jdk 1.7,jekins,maven,当我构建项目时,单元测试失败,错误是:
java.lang.VerifyError:在分支目标处期望堆栈映射表73异常详细信息:Location:com/DataDictDao.save(Lcom/DataDict;)Ljava/lang/Long; @ 25:ldc原因:此位置的预期堆栈图帧.字节代码:0000000:033d 2:11最强音FF3E 1212 1100 25b8 0018 2ab4 0000010:0022 122D B900 3302 0012 1211 0027 B800 0000020:182A B400 352B B900 3A02 0012 1211 0028 0000030:B800 182A B400 2212 3cb9 0033 0200 1212 0000040:1100 2cb8 0018 A700 2D12 1211 0029 B800 0000050:183A 0412 1211 002A B800 182A B400 2212 0000060:3e19 04b9 0042 0300 1212 1100 2bb8 0018 0000070:1904 BF12 1211架002D B800 182B B600 48b8 0000080:004E B0异常处理程序表:BCI [25,62] =>处理程序: 73 Stackmap表:same_locals_1_stack_item_extended(@ 81,Object [#43])same_frame(@ 123)
at java.lang.Class.getDeclaredConstructors0(Native Method)at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493)at java.lang.Class.getDeclaredConstructors(Class.java:1901)at …
我想在每次发生事件时将(附加文本)记录到文件中.我发现这可能是使用Java 7的try-with-resources语句执行此操作的正确方法:
public void log(String textLine) {
try(PrintWriter output = new PrintWriter(new BufferedWriter(new FileWriter("Logfile.txt", true)))) {
output.println(textLine);
}catch (IOException e) {
//exception handling
}
}
Run Code Online (Sandbox Code Playgroud)
我担心的是这个日志方法被频繁调用,输出被关闭并在每次调用此方法时重新打开,这是不必要的.与此同时,我希望受益于Java 7的try-with-resources语句功能.
我的担忧不是必要的,因为重新打开和关闭作家并不是一项昂贵的操作吗?或者我应该使用Java 6的老式方法,即手动处理异常并将输出声明为成员字段并在应用程序结束时手动关闭输出?
许多建议使用CollectionUtils.isNotEmpty(coll)而不是coll != null在下面的用例也。
if (CollectionUtils.isNotEmpty(coll)) {
for (String str : coll) {
}
}
Run Code Online (Sandbox Code Playgroud)
代替
if (coll != null) {
for (String str : coll) {
}
}
Run Code Online (Sandbox Code Playgroud)
有什么理由/优势来CollectionUtils.isNotEmpty(coll)代替这里吗?谢谢。
我试图在Java 7环境中理解这段代码,
int T = getIntVal();
while (T--> 0) {
// do stuff here
}
Run Code Online (Sandbox Code Playgroud)
在while循环中不修改T. 有人可以解释这段代码吗?
我在我的Ubuntu 14.04机器上创建了一个以Python为基础的docker镜像.我使用的Docker版本是1.12.3.用于图像的Python的基本操作系统是Debian.我还需要在我的docker镜像中使用JAVA 7(JDK 7).其中有很少的Python脚本,也很少有需要JDK的脚本.
我能够在我的图像中获得JDK 7,但是从过去的几天它就停止了工作.抛出oracle-jdk-7包不再可用的错误.然后我尝试从Dockerhub获取JDK 7 Dockerfile内容并在dockerfile中添加这些行.它工作了几次然后开始抛出空间不足的错误.
但是空间不是问题,因为'/ var'只占29%.以下是我的Dockerfile内容.
FROM python:2.7
ENV http_proxy http://http.proxy.abc.com:8000
ENV https_proxy http://http.proxy.abc.com:8000
RUN \
apt-get update && \
apt-get install -y openjdk-7-jdk && \
rm -rf /var/lib/apt/lists/*
ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64
RUN pip install datetime && \
pip install pandas && \
pip install xlrd && \
pip install email && \
pip install Jinja2 && \
pip install bokeh==0.12.4
Run Code Online (Sandbox Code Playgroud)
我也试过跟随jdk 7:
RUN echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee /etc/apt/sources.list.d/webupd8team-java.list && \
echo "deb-src …Run Code Online (Sandbox Code Playgroud) 我想知道java.util.collections的实现是否在Java 6和Java 8之间发生了变化.我有这个测试在Java 6中运行良好但在Java 8中没有
Set<String> types = new HashSet<String>();
String result;
types.add("BLA");
types.add("TEST");
Run Code Online (Sandbox Code Playgroud)
Java 6中的结果:[BLA,TEST] Java 8中的结果:[TEST,BLA]我已经查看了JDK 7和JDK 8的文档和发行说明,但没有发现JDK 6和两者之间有任何区别其他有关此事.提前感谢您的澄清.
java-7 ×10
java ×8
ant ×1
collections ×1
docker ×1
expression ×1
ioexception ×1
java-8 ×1
jdk6 ×1
literals ×1
macos ×1
maven ×1
public ×1
python ×1
verifyerror ×1
while-loop ×1
writer ×1