我正在尝试按照Android映射教程进入这一部分,我必须得到一个API密钥.
我找到了我,debug.keystore但目录中似乎没有keytool应用程序:
C:\Documents and Settings\tward\\.android>ls
adb_usb.ini avd debug.keystore repositories.cfg androidtool.cfg ddms.cfg default.keyset
Run Code Online (Sandbox Code Playgroud)
keytool这个目录中也没有:
C:\Android\android-sdk-windows\tools>ls
AdbWinApi.dll apkbuilder.bat etc1tool.exe mksdcard.exe
AdbWinUsbApi.dll ddms.bat fastboot.exe source.properties
Jet dmtracedump.exe hierarchyviewer.bat sqlite3.exe
NOTICE.txt draw9patch.bat hprof-conv.exe traceview.bat
adb.exe emulator.exe layoutopt.bat zipalign.exe
android.bat emulator_NOTICE.txt lib
Run Code Online (Sandbox Code Playgroud)
我使用Eclipse作为编辑器,并且相信我已经下载了所有最新的SDK.
我究竟做错了什么?
我们假设有一个客户端与服务器建立了很多短生命的连接.
如果客户端关闭连接,则客户端上将有许多TIME_WAIT状态的端口.由于客户端耗尽本地端口,因此无法快速进行新的连接尝试.
如果服务器关闭了连接,我会TIME_WAIT在服务器端看到很多s.但是,这有什么害处吗?客户端(或其他客户端)可以继续进行连接尝试,因为它永远不会耗尽本地端口,并且TIME_WAIT服务器端的状态数将增加.最终会发生什么?有什么不好的事吗?(减速,崩溃,掉线等)
请注意,我的问题不是"目的是TIME_WAIT什么?" 但是"如果TIME_WAIT服务器上有这么多状态,会发生什么?" 我已经知道在TCP/IP中关闭连接时会发生什么以及为什么TIME_WAIT需要状态.我不是想解决它,但只是想知道它的潜在问题.
简单来说,让我们说netstat -nat | grep :8080 | grep TIME_WAIT | wc -l打印100000.会发生什么?O/S网络堆栈是否会变慢?"打开文件太多"错误?或者,没什么好担心的?
我使用Java代码在Unix环境中创建了一个文本文件.
对于写文本文件我使用java.io.FileWriter和BufferedWriter.并且对于每行之后的换行我使用bw.newLine()方法(在哪里bw是对象BufferedWriter).
我通过从Unix环境本身附加邮件(使用Unix命令自动化)发送该文本文件.
我的问题是,在我从Windows系统中的邮件下载文本文件后,如果我打开该文本文件,则数据未正确对齐.newline()性格不起作用,我想是的.
如果我在Windows环境中打开文本文件,我想要在Unix环境中使用相同的文本文件对齐.
我该如何解决这个问题?
下面的Java代码供您参考(在Unix环境中运行):
File f = new File(strFileGenLoc);
BufferedWriter bw = new BufferedWriter(new FileWriter(f, false));
rs = stmt.executeQuery("select * from jpdata");
while ( rs.next() ) {
bw.write(rs.getString(1)==null? "":rs.getString(1));
bw.newLine();
}
Run Code Online (Sandbox Code Playgroud) 内容First.properties:
name=elango
country=india
phone=12345
Run Code Online (Sandbox Code Playgroud)
我想改变country,从india到america.这是我的代码:
import java.io.*;
public class UpdateProperty
{
public static void main(String args[]) throws Exception
{
FileOutputStream out = new FileOutputStream("First.properties");
FileInputStream in = new FileInputStream("First.properties");
Properties props = new Properties();
props.load(in);
in.close();
props.setProperty("country", "america");
props.store(out, null);
out.close();
}
}
Run Code Online (Sandbox Code Playgroud)
输出内容First.properties:
country=america
Run Code Online (Sandbox Code Playgroud)
其他属性将被删除.我想更新特定的属性值,而不删除其他属性.
我使用此命令将一些单词插入到两列表中:
INSERT IGNORE INTO terms (term) VALUES ('word1'), ('word2'), ('word3');
Run Code Online (Sandbox Code Playgroud)
如何获取插入每个单词的行的ID(主键).我的意思是在执行后返回类似"55,56,57"的值INSERT.MySQL有这样的回应吗?
专栏一词是UNIQUE.如果一个术语已经存在,MySQL将不会插入它.是否可以返回此复制的引用(即该术语存在的行的ID)?像"55,A响应12,56".
尝试可视化和理解同步.
代码A.
public class MyClass1 {
private static final Object lock = new Object();
public MyClass1() {
//unsync
synchronized(lock) {
//sync
}
//unsync
}
}
Run Code Online (Sandbox Code Playgroud)
代码B.
public class MyClass2 {
private final Object lock = new Object();
public MyClass2() {
//unsync
synchronized(lock) {
//sync
}
//unsync
}
}
Run Code Online (Sandbox Code Playgroud)
注意
上面的代码显示了构造函数,但您可以在静态方法和非静态方法中讨论行为的不同之处.另外,当synchronized块修改静态成员变量时,使用静态锁是否有利?
我已经在这个问题中查看了答案,但不清楚不同的使用场景是什么.
如何RollingFileAppender确定创建的文件权限?
我最近更改了一个守护程序进程,我必须以非root用户身份运行,现在正在创建具有权限的文件0600(只有所有者可读),但我希望它们可被所有或至少成员读取管理员组(0644或0640).我的tomcat应用程序创建的文件总是0644(所有人都可读).
我不知道我是否无意中改变了其他内容,或者是否与该用户的权限有关.我将父目录0777作为测试,它似乎没有帮助(它是0755).显然不是什么大不了,因为我可以sudo看看它们,但相当烦人,如果我必须有一个客户为我复制它将是一个问题.
环境是Ubuntu 10.04LTS jsvc/commons-daemon用来运行守护进程.如果重要的是我的log4j配置的基础知识:
<!DOCTYPE log4j:configuration SYSTEM 'log4j.dtd'>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
<appender name="StdOutAppender" class="org.apache.log4j.ConsoleAppender">
<!-- only send error / fatal messages to console (catalina.out) -->
<param name="threshold" value="${log4j.StdOutAppender.threshold}" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%5p %d{ISO8601} [%t][%x] %c - %m%n" />
<!--%d{dd-MMM-yyyy HH:mm:ss.SSS} [%5p] %c{2}.%M [line:%L]: %m%n-->
</layout>
</appender>
<appender name="TimeBasedRollingFileAppender" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="append" value="true" />
<param name="encoding" value="UTF-8" /> …Run Code Online (Sandbox Code Playgroud) 我只是允许我的Mac对其Java安装进行更新,现在我的一些旧罐子(比如javax.mail和apache.commons.httpclient)在运行时抛出"未找到类"的异常!
意思是,它们编译正常,但随后在运行时崩溃,异常如下所示:
E/dalvikvm(2414): Could not find class 'javax.mail.internet.InternetAddress', referenced from method com.my.project.Main.isValidEmailAddress
Run Code Online (Sandbox Code Playgroud)
我是否需要获得具有这些类的更新版本的罐子?或者我是否需要恢复到以前的Java版本?
或者这是一个完全不相关的问题,我只是假设与Java更新有关(这将是一个巧合,所有这些在更新之前完美地工作)?
我正在为我的一个应用程序使用Postgres,有时(不是非常频繁)其中一个连接进入<IDLE> in transaction状态并且它保持获取的锁定,导致其他连接等待这些锁,最终导致我的应用程序挂起.
以下是该pg_stat_activity流程的表输出:
select * from pg_stat_activity
24081 | db | 798 | 16384 | db | | 10.112.61.218 | | 59034 | 2013-09-12 23:46:05.132267+00 | 2013-09-12 23:47:31.763084+00 | 2013-09-12 23:47:31.763534+00 | f | <IDLE> in transaction
Run Code Online (Sandbox Code Playgroud)
这表明PID=798处于<IDLE> in transaction状态.使用上面输出中的client_port(59034),可以在Web服务器上找到客户端进程.
sudo netstat -apl | grep 59034
tcp 0 0 ip-10-112-61-218.:59034 db-server:postgresql ESTABLISHED 23843/pgbouncer
Run Code Online (Sandbox Code Playgroud)
我知道我的应用程序代码(我杀了一个运行的应用程序cron并释放了锁)导致连接挂起,但是我无法跟踪它.
这不是很频繁,我找不到任何明确的复制步骤,因为这只发生在生产服务器上.
我想得到关于如何跟踪这种空闲连接的输入,例如获取最后执行的查询或某种跟踪以确定哪个部分的代码导致了这个问题.
在Java 7的try-with-resources构造中,我可以在语句中声明一个资源,当它超出范围时它将自动关闭.try
但是,我没有发现任何可用资源范围的迹象.具体来说,它是在try块的catch/ finally块中可用的吗?
我在Eclipse Kepler中尝试了以下内容,但它给人的印象是:
资源变量由内容辅助(代码完成)提供:

快速修复建议更改为资源变量,但这会递归地产生它尝试修复的相同问题:

在提出Eclipse Bug Tracker中的错误之前,我想知道正确的范围限制是什么.
java ×6
android ×2
database ×1
eclipse ×1
eol ×1
insert ×1
java-7 ×1
keytool ×1
line-endings ×1
linefeed ×1
locking ×1
log4j ×1
macos ×1
mysql ×1
postgresql ×1
properties ×1
scope ×1
sql ×1
static ×1
synchronized ×1
tcp ×1
time-wait ×1
transactions ×1