Скорее что-то вроде
$('#tatt').find('td:nth-child(3), th:nth-child(3)').hide();
или
$('#tatt td:nth-child(3), #tatt th:nth-child(3)').hide();
(Кстати, если вы используете jQuery для манипулирования DOM, на самом деле нет необходимости вызывать метод findElementById
, тоже. Просто придерживайтесь $(/*selector*/)
.
Код Вы отправили хорошие взгляды - это не должно вызывать проблемы, которые Вы описываете. Я понимаю, что Вы отправили просто часть кода, который Вы имеете - можно ли попытаться извлечь просто эту часть к отдельной программе, выполнить ли ее и видеть ли, происходит ли проблема все еще? Мое предположение - то, что существует некоторое другое место в коде, который делает new FileInputStream(path);
и не закрывает поток правильно. Вы могли бы просто видеть результаты здесь, когда Вы пытаетесь удалить файл.
Удостоверьтесь, что у Вас есть свои опасные положения в наконец блок не в блоке попытки. Если нет никакой попытки/наконец, потому что метод выдает исключение, затем добавляют попытку/наконец и помещают завершение там.
Посмотрите на Windows Task Manager. Поскольку Процессы добавляют столбец "Handles" (в соответствии с меню View). Смотрите, чтобы видеть, продолжают ли дескрипторы повышаться без когда-либо отбрасывания.
Используйте профилировщика, чтобы видеть, есть ли у Вас Потоковые/Читатели/Устройства записи объекты вокруг этого, Вы не думаете, что должны иметь.
Править:
Спасибо за регистрацию кода... прочь для наблюдения его. Одна вещь - Ваши близкие методы, как и гарантируют, не выполнятся - первое завершение могло бы бросить и затем второе не будет работать.
РЕДАКТИРОВАНИЕ 2:
заключительный WavWriter wavWriter = новый WavWriter (OS); декодер LACDecoder = новый FLACDecoder;
Вышеупомянутые две строки заставят strams быть сохраненным в переменных экземпляра, по-видимому. Как тест видят, можно ли установить потоковые ссылки в NULL после decoder.decode (), вызов (сделайте decoder.cleanup () методом, возможно). Посмотрите, вызывает ли содержание на закрытые потоки проблему.
Кроме того, Вы делаете, какое-либо обертывание потоков передало в вышеупомянутых конструкторов? Раз так Вам, возможно, придется закрыть потоки через обертки.
Я предполагаю, что Вы используете jFlac. Я загрузил jFlac 1.3 и попробовал Ваш пример кода на flac, недавно загруженном с интернет-архива живой музыки. Для меня это работало. Я даже контролировал его с ProcessExplorer и видел, что дескрипторы файлов были открыты и затем выпущены. Ваш тестовый код действительно так же прост как что Вы дали нам, или это - упрощенная версия Вашего кода? Для меня, однажды близко () был назван, дескриптор был выпущен, и файл был впоследствии успешно удален.
Попытайтесь изменить свой бесконечный цикл на:
File toDelete = new File(path);
if (!toDelete.delete()) {
System.out.println("Could not delete " + path);
System.out.println("Does it exist? " + toDelete.exists());
}
или если Вы хотите сохранить цикличное выполнение, затем поместите 1 второй сон между попытками удалить файл. Я попробовал это JDK6 на WinXP Pro.
Не забывайте помещать попытку/выгоду вокруг Вашего close()
и ошибки журнала, если завершение выдает исключение.
Если Вы вне подсказок и идей: В cygwin, CD к Вашему javaroot и выполненный что-то как:
find . -name '*.java' -print0 | xargs -0 grep "new.*new.*putStream"
Это могло бы предоставить нескольким подозреваемым...
Ваш пример кода должен определенно работать. На самом деле я выполнил Ваш, это на Java 1.6/Vista с jflac 1.3 и исходным файлом удалено без любого цикличного выполнения.
Я предполагаю в Вашем случае, другой процесс сохраняет файл открытым, возможно, индексатор поиска по компьютеру или антивирус. Вы можете procexp для нахождения, который процесс на самом деле содержит на файл.
Разве это не пустой цикл с условием продолжения?
Вы имеете:
try
{
...code
}
finally
{
}
while (something);
поместите некоторый пробел там, и Вы на самом деле имеете:
try
{
...code
}
finally
{
}
while (something)
;
Ваш цикл с условием продолжения не связан с Вашей попыткой/наконец. если Ваши исходные сбои оператора попытки и файл не будут созданы, то тот цикл с условием продолжения никогда не будет завершаться, потому что попытка/наконец никогда не будет выполняться во второй раз.
Вы намеревались сделать это {весь Ваш код} в то время как (Ваш в то время как оператор)? потому что это не то, что Вы имеете там.
РЕДАКТИРОВАНИЕ для разъяснения: мое предложение состояло бы в том, чтобы изменить Ваш цикл с условием продолжения, чтобы иметь больше информации того, почему это не может удалить:
while (!file.delete())
{
if (!file.exists())
break; // the file doesn't even exist, of course delete will fail
if (!file.canRead())
break; // the file isn't readable, delete will fail
if (!file.canWrite())
break; // the file isn't writable, delete will fail
}
потому что, если удаляют сбои однажды, его просто попытка перестать работать много раз и, конечно, его попытка зависнуть там. Вы не изменяете состояние файла в цикле.
Теперь, когда Вы добавили другую информацию, как Tomcat, и т.д., действительно ли это - проблема полномочий? Вы пытаетесь записать в файл, что пользовательский кот работает как (никто?) vm не может создать? или удалите файл, который не может удалить процесс кота?
Если в проводнике/и т.д. процесса говорится, что Java имеет блокировку на файле, то что-то все еще имеет открытый поток с помощью него. кто-то, возможно, не правильно звонил близко () на любых потоках, пишут в файл?
Еще одна вещь, которую нужно попробовать, так как вы используете Tomcat- - в вашем дескрипторе контекста (обычно Tomcat / conf / Catalina / localhost / your-context.xml) вы можете установить
antiResourceLocking = true
, который предназначен для «предотвращения блокировки ресурсов в Windows». Значение по умолчанию для этого (если вы не укажете) - false. Стоит попробовать.